]>
Commit | Line | Data |
---|---|---|
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-'} |