the output produced by Box To run this example you will need the following file(s): ./cycloid.box. If the example requires more than one file, then you should put them into the same directory. You can then launch Box with box -l g ./cycloid.box.
// Under a shell type: box cycloid.box -l g
// ---
// This example shows how to define a function and use it to draw
// generic curves and polygons.
include "g"
// In Box all functions are associated to objects, therefore we must create
// a new object for each new function.
Cycloid = Point
// Real@Cycloid will be called when a Real number appears inside
// a Cycloid box, such as in Cycloid[1.234]
Real@Cycloid[
t = $ // $ is the Real argument (1.234 in the above example)
pi = Atan[1]*4
big_r = 10.0, big_v = 2.0*pi
small_r = 4.0, small_v = 2.0*pi*5
$$ = big_r*Vec[big_v*t] + small_r*Vec[small_v*t] // $$ is the Cycloid object
]
// Here we use the a For loop to draw a Poly object.
// For is a type derived from Int, which has a particular feature:
// it induces a jump to the begin of the current box, when it is equal to 1.
w = Window[][
t = 0.0
Poly[Cycloid[t], For[(t += 0.01) <= 1.0]
color.yellow, Style[FillStyle["eo"], Border[0.4, color.red]]]
]
w.Save["cycloid.png", Window["rgb24", .Res[Dpi[200]]]]