02-13-2024, 05:13 PM

So, here is my simple (and very basic) Turtle graphics library with two examples.

Library (sorry for Polish variable names ):

A simple example:

Koch Curve:

All files are attached.

Library (sorry for Polish variable names ):

Code:

`visible katzolwia = 0`

visible pozycjax = 300

visible pozycjay = 300

visible rysowanie = 1

visible pi = 3.14159

function forward (dlugosc)

a = int (sin (katzolwia * pi / 180) * dlugosc)

b = int (cos (katzolwia * pi / 180) * dlugosc)

x = pozycjax + a

y = pozycjay - b

if rysowanie = 1 then

draw line pozycjax, pozycjay, x, y

endif

pozycjax = x

pozycjay = y

endfunc

function backward (dlugosc)

a = int (sin (katzolwia * pi / 180) * dlugosc)

b = int (cos (katzolwia * pi / 180) * dlugosc)

x = pozycjax - a

y = pozycjay + b

if rysowanie = 1 then

draw line pozycjax, pozycjay, x, y

endif

pozycjax = x

pozycjay = y

endfunc

function turnright (zmiana)

katzolwia = katzolwia + zmiana

sprawdz ()

endfunc

function turnleft (zmiana)

katzolwia = katzolwia - zmiana

sprawdz ()

endfunc

function penup ()

rysowanie = 0

endfunc

function pendown ()

rysowanie = 1

endfunc

function goxy (zmianax, zmianay)

pozycjax = zmianax

pozycjay = zmianay

endfunc

function gox (zmianax)

pozycjax = pozycjax + zmianax

endfunc

function goy (zmianay)

pozycjay = pozycjay + zmianay

endfunc

function reset ()

katzolwia = 0

endfunc

function sprawdz ()

if katzolwia > 360 then

katzolwia = katzolwia - 360

endif

if katzolwia < 0 then

katzolwia = katzolwia + 360

endif

endfunc

A simple example:

Code:

`include "turtle.n7"`

set window "Turtle Example", 900, 600

set color 0, 0, 0

cls

set color 255, 0, 0

reset ()

goxy (110, 300)

for x = 1 to 100

forward (250)

turnleft (198)

next

set color 0, 0, 255

reset ()

goxy (230, 440)

for k = 1 to 10

gox (2)

goy (2)

for x = 1 to 36

if x % 2 = 0

penup ()

endif

backward (20)

pendown ()

turnright (10)

next

next

reset ()

set color 0, 255, 0

goxy (350, 550)

k = 2

while (k < 496)

forward (500 - k)

turnright (90.5)

k = k + 2

c = c + 1

wend

wait 5000

Koch Curve:

Code:

`include "turtle.n7"`

set window "Koch", 520, 480

goxy (10, 300)

turnright(90)

function koch(x, t)

if t > 0 then

t = t - 1

x = x / 3

koch(x, t)

turnleft(60)

koch(x, t)

turnright(120)

koch(x, t)

turnleft(60)

koch(x, t)

else

forward(3 * x)

endif

endfunc

koch(200, 5)

wait 5000

All files are attached.