Advertisement
Guest User

Mountain

a guest
Feb 20th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. package mountain;
  2.  
  3. import fractal.*;
  4.  
  5. public class Mountain extends Fractal{
  6. private Point p1;
  7. private Point p2;
  8. private Point p3;
  9. private double dev;
  10.  
  11. public Mountain(Point p1, Point p2, Point p3, double dev){
  12. super();
  13. this.p1 = p1;
  14. this.p2 = p2;
  15. this.p3 = p3;
  16. this.dev = dev;
  17. }
  18.  
  19. @Override
  20. public String getTitle() {
  21. return "Mountain Fractals";
  22. }
  23.  
  24. @Override
  25. public void draw(TurtleGraphics turtle) {
  26. turtle.moveTo(p1.getX(), p1.getY());
  27. fractalLine(turtle, order, p1, p2, p3);
  28. }
  29.  
  30.  
  31. private void fractalLine(TurtleGraphics turtle, int order, Point p1, Point p2, Point p3) {
  32. if(order == 0) {
  33. drawMinTriangle(turtle, p1, p2, p3);
  34. }
  35. else {
  36. //dev = dev/2;
  37. Point mP1 = mid(p1, p2, dev);
  38. Point mP2 = mid(p2, p3, dev);
  39. Point mP3 = mid(p3, p1, dev);
  40.  
  41.  
  42.  
  43. fractalLine(turtle, order-1, p1, mP1, mP3);
  44. fractalLine(turtle, order-1, p2, mP1, mP2);
  45. fractalLine(turtle, order-1, p3, mP2, mP3);
  46. fractalLine(turtle, order-1, mP1, mP2, mP3);
  47. }
  48. }
  49.  
  50.  
  51. /* Gives the point in the "deviated" middle of two points */
  52. private Point mid(Point x1, Point x2, double deviation) {
  53. double rand = RandomUtilities.randFunc(deviation);
  54. Point midPoint = new Point((x1.getX()+x2.getX())/2.0, (x1.getY()+x2.getY())/ 2.0 + rand/2);
  55. return midPoint;
  56. }
  57.  
  58. private void drawMinTriangle(TurtleGraphics turtle, Point x1, Point x2, Point x3) {
  59. turtle.moveTo(x1.getX(), x1.getY());
  60. turtle.forwardTo(x2.getX(), x2.getY());
  61. turtle.forwardTo(x3.getX(), x3.getY());
  62. turtle.forwardTo(x1.getX(), x1.getY());
  63. }
  64.  
  65.  
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement