- XLogo
This curve is a polar plot which looks like a butterfly. The equation gives the distance
from the origin (R) for angle theta. This one is of the form:
e^Cos theta -2*Cos 4*theta +Sin theta/12^5
Where e is the value 2.718 and theta ranges from 0 to 360 degrees.
To New
# set default screen, pen and turtle values
ResetAll SetScreenSize [400 400] HideTurtle
SetSC Black SetPC Green SetPS 1 PenUp
End
To Title
# write header title and footer equation
SetPC White
SetPos [-190 184] Label [Butterfly Curve]
SetPos [-190 -190]
Label [e^Cos theta -2*Cos 4*theta +Sin theta/12^5]
End
To DrawCurve
# draw polar curve
For [Theta 0 360 2] [
SetPos PtoR (56*Curve :Theta) :Theta
SetPC Hue 3*:Theta PenDown Wait 1]
End
To PtoR :RadDist :Theta
# convert polar to rectangular co-ordinates
LocalMake "X :RadDist *Sin :Theta
LocalMake "Y :RadDist *Cos :Theta
Output List :X :Y
End
To Hue :Theta
# Output RGB hue list from angle :Theta
Make "Red Round 127.5*(1+Sin :Theta)
Make "Green Round 127.5*(1+Sin (:Theta+120))
Make "Blue Round 127.5*(1+Sin (:Theta+240))
Output (List :Red :Green :Blue)
End
To Curve :Theta
# return distance from origin
Output (Power 2.7 (Cos :Theta)) -(2*Cos(4*:Theta))
+(Power Sin(:Theta/12) 5)
# Output (1-Abs Minus Sin (6*:Theta)) + 2*Cos (2*:Theta)
# Output 3*Sqrt Abs Sin 3*:Theta
End
To Go
New SetPW 2
Title Draw Curve
End