Sköldpadda grafik
I datorgrafik är sköldpaddsgrafik vektorgrafik som använder en relativ markör (" sköldpaddan ") på ett kartesiskt plan (x- och y-axeln ) . Sköldpaddsgrafik är en nyckelfunktion i logotypens programmeringsspråk .
Översikt
Sköldpaddan har tre attribut: en plats, en orientering (eller riktning) och en penna. Pennan har också attribut: färg, bredd och på/av-läge (kallas även ned och upp ).
Sköldpaddan rör sig med kommandon som är relativa till dess egen position, som "flytta framåt 10 mellanslag" och "sväng vänster 90 grader". Pennan som bärs av sköldpaddan kan också styras genom att aktivera den, ställa in dess färg eller ställa in dess bredd. En elev kunde förstå (och förutsäga och resonera kring) sköldpaddans rörelse genom att föreställa sig vad de skulle göra om de var sköldpaddan. Seymour Papert kallade detta "kroppssyntoniskt" resonemang.
Ett komplett grafiksystem för sköldpaddor kräver kontrollflöde, procedurer och rekursion: många sköldpaddsritprogram misslyckas. Från dessa byggstenar kan man bygga mer komplexa former som kvadrater, trianglar, cirklar och andra sammansatta figurer. Idén med sköldpaddsgrafik är till exempel användbar i ett Lindenmayer-system för att generera fraktaler .
Sköldpaddsgeometri används också ibland i grafiska miljöer som ett alternativ till ett strikt koordinatadresserat grafiksystem.
Historia
Sköldpaddsgrafik förknippas ofta med programmeringsspråket Logotyp . Seymour Papert lade till stöd för sköldpaddsgrafik till Logo i slutet av 1960-talet för att stödja hans version av sköldpaddsroboten , en enkel robot som styrs från användarens arbetsstation och som är utformad för att utföra ritningsfunktionerna som tilldelats den med hjälp av en liten infällbar penna i eller fäst vid robotens kropp. Sköldpaddsgeometri fungerar något annorlunda än ( x , y ) adresserad kartesisk geometri , och är främst vektorbaserad (dvs. relativ riktning och avstånd från en startpunkt) i jämförelse med koordinatadresserade system som bitmappar eller rastergrafik. Rent praktiskt efterliknar användningen av sköldpaddsgeometri istället för en mer traditionell modell sköldpaddsrobotens faktiska rörelselogik. Sköldpaddan är traditionellt och oftast representerad bildmässigt antingen som en triangel eller en sköldpaddaikon (även om den kan representeras av vilken ikon som helst).
Idag innehåller Python- programmeringsspråkets standardbibliotek en Turtle-grafikmodul. Liksom sin föregångare med logotypen tillåter Python-implementeringen av sköldpaddan programmerare att kontrollera en eller flera sköldpaddor i ett tvådimensionellt utrymme. Eftersom standard Python-syntax, kontrollflöde och datastrukturer kan användas tillsammans med turtle-modulen, har turtle blivit ett populärt sätt för programmerare att lära sig Python för att bekanta sig med grunderna i språket.
Förlängning till tre dimensioner
Idéerna bakom sköldpaddsgrafik kan utökas till att omfatta tredimensionellt utrymme. Detta uppnås genom att använda en av flera olika koordinatmodeller. En vanlig inställning är kartesisk-roterande som med den ursprungliga 2D-sköldpaddan: en extra "upp"-vektor ( normalvektor ) definieras för att välja det plan som sköldpaddans 2D-"framåt"-vektor roterar i; själva "upp"-vektorn roterar också runt vektorn "framåt". I själva verket har sköldpaddan två olika kursvinklar, en inom planet och den andra bestämmer planets vinkel. Vanligtvis ändrar planets vinkel inte sköldpaddan, i linje med den traditionella inställningen.
Verhoeff 2010 implementerar tvåvektormetoden; ett roll- kommando används för att rotera "upp"-vektorn runt vektorn "framåt". Artikeln fortsätter med att utveckla en algebraisk teori för att bevisa geometriska egenskaper från syntaktiska egenskaper hos de underliggande sköldpaddsprogrammen. En av insikterna är att ett dykkommando verkligen är en förkortning av en sväng-rull-sväng-sekvens.
Cheloniidae Turtle Graphics är ett 3D-sköldpaddsbibliotek för Java . Den har ett bankkommando (samma som roll ) och ett pitch- kommando (samma som dyk ) i "Rotational Cartesian Turtle". Andra koordinatmodeller, inklusive icke-euklidisk geometri, är tillåtna men ingår inte.
Se även
Vidare läsning
- Papert, Seymour (1993). Mindstorms: Children, Computers, and Powerful Ideas (2:a upplagan). New York: Basic Books . ISBN 0-465-04674-6 . OCLC 794964988 .
- Papert, Seymour (1993). The Children's Machine: Rethinking School in the Age of the Computer . New York: Basic Books. ISBN 0-465-01830-0 . OCLC 248428992 .