Go to file
2024-02-12 19:43:31 -05:00
draw.c some changes from visit at Austin 2024-01-19 17:18:14 -06: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 some changes from visit at Austin 2024-01-19 17:18:14 -06:00
main.c some changes from visit at Austin 2024-01-19 17:18:14 -06:00
main.h some changes from visit at Austin 2024-01-19 17:18:14 -06: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 some clarification 2024-02-12 19:43:31 -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. For the mathematical details, see our paper.

Installation & Prerequisites

This program is written C and only runs on Linux with the X window system (because that's what I happen to be using). It uses Cairo for drawing and X11 for input. We also require the Gnu Scientific Library (GSL) including CBLAS.

To build, just 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

The arguments are 6 integers (p1, p2, p3, q1, q2, q3) and a floating point numbers t. Together they discribe the triangle group under consideration (t can be changed with the arrow keys).

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)