9469555e |
1 | DESCRIPTION |
2 | ----------- |
3 | |
bd1140a1 |
4 | LSystem3D is a experimental Lindenmayer System generator with 3D capabilities, |
9469555e |
5 | whose main goal is to generate all kinds of plants or whatever fractal |
90660240 |
6 | L-system structures the user desires. For now, LSystem3D is highly under |
9469555e |
7 | development and is considered alpha, that is, lots of things are missing and |
8 | it will probably not work 100% accurate. |
9 | |
10 | |
11 | |
12 | REQUIREMENTS |
13 | ------------ |
14 | |
bd1140a1 |
15 | Currently tested on Debian GNU/Linux (Sid) only, but should compile fine on |
16 | other platforms without bigger modifications. |
9469555e |
17 | |
90660240 |
18 | A fast computer with HW accelerated 3D would be nice. |
19 | |
bd1140a1 |
20 | |
21 | Dependencies: |
9469555e |
22 | |
23 | OpenGL |
90660240 |
24 | FOX toolkit |
9469555e |
25 | libxml++ |
9469555e |
26 | |
27 | |
28 | |
29 | USAGE |
30 | ----- |
31 | |
bd1140a1 |
32 | Rendering window: |
33 | |
34 | Left mouse button: Move model in z-plane |
35 | Middle mouse button: Zoom in/out |
36 | Right mouse button: Rotate around y-axis |
37 | |
38 | |
39 | Controller window: |
9469555e |
40 | |
bd1140a1 |
41 | Axiom: Initial rule |
42 | Rules: The L-system rules |
43 | Angle: Turn/pitch/roll angle |
44 | Depth: Depth of recursion |
45 | Diameter: Initial diameter of segment |
46 | Factor: For each recursion level, multiply segment diameter with this value |
47 | Generate: Generate the L-system |
9469555e |
48 | |
49 | |
50 | Rules: |
51 | |
bd1140a1 |
52 | F Walk forward, creating a segment |
53 | A-Z Replacement rule |
54 | A(0.33) Probability factor 0.33 for rule A |
55 | = Rule assignment |
56 | + Turn left |
57 | - Turn right |
58 | & Pitch down |
59 | ^ Pitch up |
60 | \ Roll left |
61 | / Roll right |
62 | | Turn around 180 degrees |
63 | [ Save state to stack |
64 | ] Load state from stack |
65 | { Create a planar surface |
66 | } Close a planar surface |
67 | f One vertex in a planar surface, specified CCW |
68 | ! Decrement segment diameter |
69 | ' Increment current index to color table |
70 | , Decrement current index to color table |
71 | |
72 | Example: |
73 | |
74 | F(0.33)=[+FL]F/[-FL]F! |
75 | F(0.33)=F[&FL]F! |
76 | F(0.34)=F/[-FL]&F! |
77 | L={,-f++f-|-f++f-'} |