Guest User

Untitled

a guest
Oct 16th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. var angle = 0;
  2. var ycurve = 0;
  3. var curve = 0;
  4. var length = 0;
  5. var limit = 0;
  6. var leafs;
  7.  
  8. var slidercurve;
  9. var sliderycurve;
  10. var sliderangle;
  11. var sliderlength;
  12. var sliderlimit;
  13. var checkboxleafs;
  14.  
  15. function setup() {
  16. createCanvas(800, 600);
  17. noFill();
  18. createP("Angle:");
  19. sliderangle = createSlider(0, TWO_PI, PI / 4, 0.01);
  20. createP("Curve:");
  21. slidercurve = createSlider(0, 200, 0);
  22. createP("Size:");
  23. sliderlength = createSlider(0, 200, 100);
  24. createP("Limit:");
  25. sliderlimit = createSlider(3,50,4);
  26. createP("Blaadjes:")
  27. checkboxleafs = createCheckbox("'Blaadjes'",false);
  28. }
  29.  
  30. function draw() {
  31. background(51);
  32. angle = sliderangle.value();
  33. curve = slidercurve.value();
  34. length = sliderlength.value();
  35. limit = sliderlimit.value();
  36. leafs = checkboxleafs.checked();
  37. stroke(255);
  38. translate(width/2, height);
  39. branch(length);
  40. translate(0, length);
  41. drawLeafs(length);
  42.  
  43. }
  44.  
  45. function branch(len) {
  46. //line(0, 0, 0, -len);
  47. bezierTo(0,-len,0,0);
  48. translate(0, -len);
  49. if (len > limit) {
  50. push();
  51. rotate(angle);
  52. branch(len * 0.67);
  53. pop();
  54. push();
  55. rotate(-angle);
  56. branch(len * 0.67);
  57. pop();
  58. }
  59. }
  60.  
  61. function drawLeafs(len) {
  62. translate(0, -len);
  63. if (len > limit) {
  64. push();
  65. rotate(angle);
  66. drawLeafs(len * 0.67);
  67. pop();
  68. push();
  69. rotate(-angle);
  70. drawLeafs(len * 0.67);
  71. pop();
  72. }
  73. else
  74. {
  75. rotate(90);
  76. fill(255,100,255);
  77. stroke(0);
  78. if(leafs)
  79. {
  80. flower(30);
  81. }
  82. else
  83. {
  84. leaf(30);
  85. }
  86. }
  87. }
  88.  
  89.  
  90. function bezierTo(x1,y1,x2,y2)
  91. {
  92. bezier(x1, y1, x1+curve, y1+ycurve, x2+curve, y2-ycurve, x2, y2);
  93. }
  94.  
  95. function leaf(size)
  96. {
  97. arc(0, 0, size, size, 0, PI);
  98. }
  99.  
  100. function flower(size)
  101. {
  102. for (var i = 0; i < 5; i ++) {
  103. ellipse(0, size/2, size/3, size);
  104. rotate(PI/5);
  105. }
  106. }
Add Comment
Please, Sign In to add comment