arc(Turtle,double,double)   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
c 1
b 0
f 0
dl 0
loc 4
rs 10
1
package example.turtlelogo;
2
3
import org.gannacademy.cdf.turtlelogo.Turtle;
4
import org.gannacademy.cdf.turtlelogo.docs.SavableTerrarium;
5
6
public class Hearts {
7
    public static void arc(Turtle turtle, double radius, double arcLength) {
8
        for (int i = 0; i < arcLength; i++) {
9
            turtle.rt(1);
10
            turtle.fd(2.0 * Math.PI * radius / 360.0);
11
        }
12
    }
13
14
    public static void heart(Turtle turtle, double size) {
15
        double heading = turtle.getHeadingInDegrees();
16
        double  radius = size / 4.0,
17
                side = size / 2.0 - (radius - Math.cos(Math.PI / 4.0) * radius),
18
                diagonal = Math.sqrt(2 * Math.pow(side, 2));
19
        turtle.lt(45);
20
        arc(turtle, radius, 225);
21
        turtle.head(heading);
22
        arc(turtle, radius, 225);
23
        turtle.fd(diagonal);
24
        turtle.rt(90);
25
        turtle.fd(diagonal);
26
        turtle.head(heading);
27
    }
28
29
    public static void main(String[] args) {
30
        SavableTerrarium terrarium = new SavableTerrarium();
31
        Turtle clarence = new Turtle(terrarium);
32
        clarence.head(Turtle.NORTH);
33
        heart(clarence, 100);
34
        clarence.tp(100, 100);
35
        heart(clarence, 50);
36
        clarence.tp(200, 150);
37
        heart(clarence, 300);
38
        terrarium.drawTo("hearts.png");
39
    }
40
}
41