JavaBolic
JavaBolic is a Java applet which displays and allows interaction with objects in hyperbolic geometry.
<PARAM> tags. Basic structure:
<applet code=JavaBolic codebase=classes width=xxx height=yyy>
<param name=model value="class;initdata">
<param name=e0 value="name;class;type;color;initdata">
<param name=e1 value="name;class;type;color;initdata">
.
.
.
<param name=s0 value="value;minimum;maximum;transformation">
.
.
.
</applet>
model is what model of hyperbolic space you wish to use, e[i] are geometric elements in that model, and s[i] are sliders which may modify the geometric elements. Specifically,
model (REQUIRED):
value="class;initdata"
class
"poincare": Poincare' disk model
"uhp": Upper half-plane model
initdata
radius"
radius: radius of the unit disk, in pixels
cx;cy;sx;sy;x;y;axes"
cx;cy: upper-left coordinates of corner of viewing box in logical coordinates
sx;sy: width and height of viewing box in logical coordinates
x;y: width and height of viewing box in pixels
axes: "true" or "false", whether to draw the x and y axes
e[i] (geometric elements, [i] starts at 0):
value="name;class;type;color;initdata"
name
class
"point"
type
"free": can be moved with the mouse
"fixed": cannot be moved with the mouse
initdata
"x;y;infinite;boundaryflag"
x;y: x and y coordinates of point
infinite: "true" or "false", whether the point has value infinity
boundaryflag: "true" or "false", whether the point is constrained to the boundary of the model
"line"
type
"line": line through two points
"segment": line segment between two points
"ray": ray from point through another point
initdata
"p1;p2"
p1;p2: endpoints of line from p1 to p2
"transformation"
type
"elliptic"
initdata
"fp;theta;images;flowlines;(all|p1;p2;...)"
fp: fixed point
theta: rotation in radians
images: "true" or "false", whether to transform and show the images or transform the preimages
flowlines: (not implemented)
(all|p1;p2;...): list of preimage object names
"parabolic"
initdata
"fp;length;images;flowlines;(all|p1;p2;...)"
fp: fixed point
length: length to translate
images: "true" or "false", whether to transform and show the images or transform the preimages
flowlines: (not implemented)
(all|p1;p2;...): list of preimage object names
"hyperbolic"
initdata
"rp;fp;length;images;flowlines;(all|p1;p2;...)"
rp: repelling fixed point
ap: attracting fixed point
length: length to translate
images: "true" or "false", whether to transform and show the images or transform the preimages
flowlines: (not implemented)
(all|p1;p2;...): list of preimage object names
"reflection"
initdata
"p1;p2;images;flowlines;(all|p1;p2;...)"
p1: point 1 of reflection axis
p2: point 2 of reflection axis
images: "true" or "false", whether to transform and show the images or transform the preimages
flowlines: (not implemented)
(all|p1;p2;...): list of preimage object names
s[i] (sliders, [i] starts at 0)
value="value;minimum;maximum;transformation"
value: initial value of slider
minimum: minimum value of slider
maximum: maximum value of slider
transformation: name of transformation to affect