Go to file
2024-01-10 11:14:13 -05:00
draw.c clean up a bit 2024-01-10 11:13:48 -05:00
initcairo.c triangle group code reorganization 2019-02-03 13:18:14 +01:00
initcairo.h triangle group code reorganization 2019-02-03 13:18:14 +01:00
limit_set.c just used the program a bit 2021-11-05 08:11:06 -05:00
linalg.c just used the program a bit 2021-11-05 08:11:06 -05:00
linalg.h just used the program a bit 2021-11-05 08:11:06 -05:00
main.c some random changes 2022-03-02 10:46:42 -06:00
main.h just used the program a bit 2021-11-05 08:11:06 -05:00
Makefile triangle group code reorganization 2019-02-03 13:18:14 +01:00
queue.h draw arcs 2019-12-23 12:29:50 +01:00
README.md start writing documentation 2024-01-10 11:14:13 -05:00
triangle.c limit set cairo 2018-08-08 16:24:03 +02:00
triangle.h limit set cairo 2018-08-08 16:24:03 +02:00

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)