sync on
 
x#=300
y#=200
steps=45
do
   cls
   angle#=angle#-1
   for i=0 to 360 step steps
   ink rgb(0,255-i*.8,0),0
   triangle(x#,y#,newxvalue(x#,angle#+i,100),newzvalue(y#,angle#+i,100),newxvalue(x#,angle#+i+steps+1,100),newzvalue(y#,angle#+i+steps+1,100))
   next i
   print screen fps()
   sync
loop
 
 
Function Triangle(x1#,y1#,x2#,y2#,x3#,y3#)
   if x1#>x2#
      temp#=x1#:x1#=x2#:x2#=temp#
      temp#=y1#:y1#=y2#:y2#=temp#
   endif
   if x3#>x2#
      temp#=x2#:x2#=x3#:x3#=temp#
      temp#=y2#:y2#=y3#:y3#=temp#
   endif
   if x1#>x3#
      temp#=x1#:x1#=x3#:x3#=temp#
      temp#=y1#:y1#=y3#:y3#=temp#
   endif
 
   y12temp#=(y1#-y2#)/(x1#-x2#)
   y13temp#=(y1#-y3#)/(x1#-x3#)
   y23temp#=(y2#-y3#)/(x2#-x3#)
   y1cur#=y1#
   y2cur#=y1#
   y3cur#=y3#
   for i#= x1# to x2#
      y1cur#=y1cur#+y12temp#
      if i#<x3#
         line i#,y1cur#,i#,y2cur#
         y2cur#=y2cur#+y13temp#
      endif
      if i#=x3# then line i#,y1cur#,i#,y3#
      if i#>x3#
         line i#,y1cur#,i#,y3cur#
         y3cur#=y3cur#+y23temp#
      endif
   next i#
EndFunction