Post by rick3137 on May 26, 2016 15:18:53 GMT -6
This was a little practice in translation from sdlbasic.
' by Rick3137 http://rb23.yolasite.com
Pi = 3.14159265
Degree = Pi/180
Ang = 0
x = 0
y = 0
dw = 1000
dh = 600
Ang2 = 0
OuterCount = 0
red = rgb(255,0,0)
blue = rgb(0,0,255)
green = rgb(0,255,0)
violet = rgb(255,0,255)
yellow = rgb(255,255,0)
orange = rgb(255,200,0)
white = rgb(255,255,255)
tsize = round(dw/200 )
LoadFont(0,"FreeMono.ttf",16)
windowOpen(0," Speed Test", 0, 0, 1200,700,0)
window(0)
CanvasOpen(0,1200,700,0,0,1200,700,1)
hideMouse()
Canvas(0)
Randomize(10)
setcolor( rgb(20,40,60 ))
clearcanvas()
setcolor( rgb(245,200,255 ))
cls()
x = 150
y = 500
setcolor (rgb(255,0,0))
function MakeColor()
clr = rand(8)
if clr = 1 then
setcolor(white)
end if
if clr = 2 then
setcolor(red)
end if
if clr = 3 then
setcolor(orange)
end if
if clr = 4 then
setcolor(yellow)
end if
if clr = 5 then
setcolor(green)
end if
if clr = 6 then
setcolor(blue)
end if
if clr = 7 then
setcolor(violet)
end if
end function
function MoveSteps ( distance )
dx = cos(Ang) * distance
dy = sin(Ang) * distance
xx = x + dx
yy = y - dy
line( x,y,xx,yy)
x = xx
y = yy
end function
function MoveTo ( distance )
dx = cos(Ang) * distance
dy = sin(Ang) * distance
xx = x + dx
yy = y - dy
x = xx
y = yy
end function
sub Fractal(size)
' cnt,cnt2,cnt3,cnt4,cnt5,cnt6
for cnt5 = 1 to 3
if cnt5 = 2 then
Ang = Degree * Ang2
MoveTo(size* 32)
Ang = Degree * ( Ang2 + 240)
MoveTo(size* 30)
end if
if cnt5 = 3 then
Ang = Degree* (180 + Ang2)
MoveTo(size* 30)
Ang = Degree* (120 + Ang2)
MoveTo(size* 2)
end if
for cnt4 = 1 to 3
if cnt4 = 2 then
Ang = Degree * Ang2
MoveTo(size* 16)
Ang = Degree * ( Ang2 + 240)
MoveTo(size* 14)
end if
if cnt4 = 3 then
Ang = Degree* (180 + Ang2)
MoveTo(size* 14)
Ang = Degree* (120 + Ang2)
MoveTo(size* 2)
end if
for cnt3 = 1 to 3
if cnt3 = 2 then
Ang = Degree * Ang2
MoveTo(size* 8)
Ang = Degree * ( Ang2 + 240)
MoveTo(size* 6)
end if
if cnt3 = 3 then
Ang = Degree* (180 + Ang2)
MoveTo(size* 6)
Ang = Degree* (120 + Ang2)
MoveTo(size* 2)
end if
for cnt2 = 1 to 3
if cnt2 = 2 then
Ang = Degree * Ang2
MoveTo(size* 4)
Ang = Degree * ( Ang2 + 240)
MoveTo(size* 2)
end if
if cnt2 = 3 then
Ang = Degree* (180 + Ang2)
MoveTo(size* 2)
Ang = Degree* (120 + Ang2)
MoveTo(size* 2)
end if
MakeColor()
for cnt = 1 to 3
if cnt = 2 then
Ang = Degree * Ang2
MoveTo(size*2)
end if
if cnt = 3 then
Ang = Degree* (120 + Ang2)
MoveSteps(size*2)
end if
Ang = Degree * Ang2
MoveSteps(size*2)
Ang = Degree* (120 + Ang2)
MoveSteps(size)
Ang = Degree* (240 + Ang2)
MoveSteps(size)
Ang = Degree* (120 + Ang2)
MoveSteps(size)
Ang = Degree* Ang2
MoveSteps(size)
Ang = Degree* (120 + Ang2)
MoveSteps(size)
Ang = Degree* (240 + Ang2)
MoveSteps(size*2)
next
next
next
next
next
end sub
setcolor (rgb(0,255,255 ))
for OuterCount = 1 to 600
x = dw/2
y = dh/2
Fractal(tsize)
Ang2 = Ang2 + 60
update()
wait(10)
next
setcolor( rgb(255,255,255 ))
Canvas(0)
DrawText( "Press any key to exit ..", 10,0)
update()
waitkey()
end