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