Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mountain;
- import fractal.Fractal;
- import fractal.TurtleGraphics;
- public class Mountain extends Fractal{
- private Point a, b, c;//startpunkterna
- private double dev;
- // a is bottom left
- // b is top point
- // c is bottom right
- public Mountain(Point a, Point b, Point c, double dev) {
- super ();
- this.a = a;
- this.b = b;
- this.c = c;
- this.dev = dev;
- }
- @Override
- public String getTitle() {
- return "Big mountain";
- }
- // returns the middle point between two points (where the new lines will be drawn)
- private Point getMiddlePoint(Point a, Point b, double dev) {
- return new Point ((a.getX() + b.getX()) / 2, (int) (((a.getY() + b.getY()) / 2) + RandomUtilities.randFunc(dev))); // D4
- }
- public void fractalLine(TurtleGraphics g, int order, Point a, Point b, Point c, double dev) {
- if(order == 0) { // rita ut triangel
- g.moveTo(a.getX(), a.getY());
- g.forwardTo(b.getX(), b.getY());
- g.forwardTo(c.getX(), c.getY());
- g.forwardTo(a.getX(), a.getY());
- }
- else { // rita fractallinjer
- g.moveTo(a.getX(), a.getY());
- Point a1 = getMiddlePoint(a, b, dev);
- Point b1 = getMiddlePoint(b, c, dev);
- Point c1 = getMiddlePoint(c, a, dev);
- fractalLine(g, order -1 , a, a1, c1, dev);
- fractalLine(g, order -1 , b, a1, b1, dev);
- fractalLine(g, order -1 , c, b1, c1, dev);
- fractalLine(g, order -1 , a1, b1, c1, dev);
- }
- }
- @Override
- public void draw(TurtleGraphics g) {
- //g.moveTo(a.getX(), a.getY()); // sätter startpunkten till a
- fractalLine(g, order, a, b, c, dev);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement