Sierpinski arrowhead curve: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) m (→{{header|11l}}) |
(Added XPL0 example.) |
||
Line 1,623: | Line 1,623: | ||
} |
} |
||
}</lang> |
}</lang> |
||
=={{header|XPL0}}== |
|||
<lang XPL0>int PosX, PosY; |
|||
real Dir; |
|||
proc Curve(Order, Length, Angle); |
|||
int Order; real Length, Angle; |
|||
[if Order = 0 then |
|||
[PosX:= PosX + fix(Length*Cos(Dir)); |
|||
PosY:= PosY - fix(Length*Sin(Dir)); |
|||
Line(PosX, PosY, $E \yellow\); |
|||
] |
|||
else [Curve(Order-1, Length/2.0, -Angle); |
|||
Dir:= Dir + Angle; |
|||
Curve(Order-1, Length/2.0, +Angle); |
|||
Dir:= Dir + Angle; |
|||
Curve(Order-1, Length/2.0, -Angle); |
|||
]; |
|||
]; |
|||
def Order=5, Length=300.0, Pi=3.141592654, Sixty=Pi/3.0; |
|||
[SetVid($12); \VGA graphics: 640x480x8 |
|||
PosX:= 640/4; PosY:= 3*480/4; |
|||
Move(PosX, PosY); |
|||
Dir:= 0.0; |
|||
if (Order&1) = 0 then |
|||
Curve(Order, Length, +Sixty) |
|||
else [Dir:= Dir + Sixty; |
|||
Curve(Order, Length, -Sixty); |
|||
]; |
|||
]</lang> |
|||
{{out}} |
|||
<pre> |
|||
http://www.xpl0.org/rcarrow.gif |
|||
</pre> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |