draw.c | ||
initcairo.c | ||
initcairo.h | ||
limit_set.c | ||
linalg.c | ||
linalg.h | ||
main.c | ||
main.h | ||
Makefile | ||
queue.h | ||
README.md | ||
triangle.c | ||
triangle.h |
triangle_group_limit_set - visualizer for triangle group limit sets in the projective plane
This program visualizes the fractal limit set of triangle groups in SL(3,R) in the projective plane.
Installation & Prerequisites
This program is written C and exclusively for Linux. It uses Cairo for drawing and X11 for input, which means it will only run in the X window system. Besides these, the only required library is the Gnu Scientific Library (GSL) including CBLAS.
To build, make sure GCC as well as these libraries are installed, and run
make
Then we can run it for example like this:
./limit_set 5 5 5 1 1 1 1.0 1.0
The arguments are 6 integers (p1, p2, p3, q1, q2, q3) and two floating point numbers (t,s) describing the triangle group under consideration (initially, t and s can be changed with the arrow keys). The last argument is optional; if it is not given, it defaults to s = 1.
Key bindings
Drag the mouse to move the image, drag with Shift pressed to rotate.
Key | function |
---|---|
PageUp | increase t by 2% |
PageDown | decrease t by 2% |
Right | increase t by 0.2% |
Left | decreaes t by 0.2% |
Up | increase t by 0.002% |
Down | decrease t by 0.002% |
Space | (reset t to original value) |
R | cycle through affine charts |
l | show limit curve |
L | show limit curve as line or as points |
f | generate limit curve using attracting / repelling fixed points of conjugates of the Coxeter element |
d | show dual limit curve |
r | show fixed points and lines of generating reflections |
a | show fixed points and lines of Coxeter elements |
c | show the orbit of an arbitrary point (point can be changed with Shift+Click) |
b | show certain conics touching the limit curve |
B | show the "boxes" used to approximate the limit curve |
p | save a screenshot of the current image (in PDF format) |
t | toggle info text |
i | (print some info to terminal?) |
x | (show rotated reflectors?) |
M | (make a movie) |