Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. package mountain;
  2.  
  3. import fractal.Fractal;
  4. import fractal.TurtleGraphics;
  5.  
  6. public class Mountain extends Fractal{
  7. private Point a, b, c;//startpunkterna
  8. private double dev;
  9.  
  10. // a is bottom left
  11. // b is top point
  12. // c is bottom right
  13. public Mountain(Point a, Point b, Point c, double dev) {
  14. super ();
  15. this.a = a;
  16. this.b = b;
  17. this.c = c;
  18. this.dev = dev;
  19. }
  20.  
  21. @Override
  22. public String getTitle() {
  23. return "Big mountain";
  24. }
  25.  
  26. // returns the middle point between two points (where the new lines will be drawn)
  27. private Point getMiddlePoint(Point a, Point b, double dev) {
  28. return new Point ((a.getX() + b.getX()) / 2, (int) (((a.getY() + b.getY()) / 2) + RandomUtilities.randFunc(dev))); // D4
  29. }
  30.  
  31.  
  32. public void fractalLine(TurtleGraphics g, int order, Point a, Point b, Point c, double dev) {
  33. if(order == 0) { // rita ut triangel
  34. g.moveTo(a.getX(), a.getY());
  35. g.forwardTo(b.getX(), b.getY());
  36. g.forwardTo(c.getX(), c.getY());
  37. g.forwardTo(a.getX(), a.getY());
  38.  
  39. }
  40. else { // rita fractallinjer
  41. g.moveTo(a.getX(), a.getY());
  42. Point a1 = getMiddlePoint(a, b, dev);
  43. Point b1 = getMiddlePoint(b, c, dev);
  44. Point c1 = getMiddlePoint(c, a, dev);
  45.  
  46. fractalLine(g, order -1 , a, a1, c1, dev);
  47. fractalLine(g, order -1 , b, a1, b1, dev);
  48. fractalLine(g, order -1 , c, b1, c1, dev);
  49. fractalLine(g, order -1 , a1, b1, c1, dev);
  50.  
  51. }
  52. }
  53.  
  54. @Override
  55. public void draw(TurtleGraphics g) {
  56. //g.moveTo(a.getX(), a.getY()); // sätter startpunkten till a
  57. fractalLine(g, order, a, b, c, dev);
  58. }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement