3D Pythagoras tree
by NightElfik
Short link: http://malsys.cz/g/aSlcPN7v
Loading 3D model
of 3D Pythagoras tree
Comments
comments powered by DisqusSource code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | lsystem PythagorasTree3D(angle = 40, i = 11) extends Branches { set symbols axiom = +(90) F(40, 0); set iterations = i; let gradient = toColorGradient(#7B3C12, i, #00FF00); set cameraPosition = {77, -140, -76}; set cameraUpVector = {-0.36, 0.79, -0.49}; set cameraTarget = {9, 15, -74}; let angleComp = 90 - angle; // angle complement let sinAngle = sin(deg2rad(angle)); let sinAngleComp = sin(deg2rad(angleComp)); interpret E(x, i) as DrawForward(x, x, gradient[i]); interpret m as MoveForward; interpret + as Yaw(angle); interpret - as Yaw(-angleComp); rewrite F(x, i) with left = x * sinAngle, right = x * sinAngleComp to E(x, i) [ + m(left / 2) F(right, i + 1) ] - m(right / 2) F(left, i + 1); } process all with ThreeJsRenderer; |
Thumbnail extension
1 | process all(40, 9) with ThreeJsRenderer; |