我正在尝试使用我编写的使用名为Turtle的类的方法创建一个Euelr圈。
这就是我写的:
public class turtleAa {
public static void main(String[] args) {
int number = LineInput.readInt();
euelr(number);
}
public static void euelr(int n){
Turtle leonardo = new Turtle();
leonardo.tailDown();
for (int i=1; i<=n; i++){
leonardo.moveForward(50);
leonardo.turnRight(90);
leonardo.moveForward(50);
leonardo.turnLeft(135);
leonardo.moveForward(35);
leonardo.turnLeft(90);
leonardo.moveForward(35);
leonardo.turnLeft(90);
leonardo.moveForward(70.71067812);
leonardo.turnLeft(135);
leonardo.moveForward(50);
leonardo.turnLeft(135);
leonardo.moveForward(70.71067812);
leonardo.turnLeft(135);
leonardo.moveForward(50);
leonardo.turnLeft(?)
}
}}
我想整整一圈of Euler drawnings 这有两个主要问题:
无法理解如何正确控制i和n的角度。
莱昂纳多龟正在画线。
谢谢。
答案 0 :(得分:2)
这个怎么样?
leonardo.turnLeft(360/n);
这当然只适用于360的除数,但其中有相当一部分(1,2,3,4,5,6,8,9,10,12,15,18,20 ... )。如果您的turnLeft
方法接受非整数(即double
或float
)值,请使用
leonardo.turnLeft(360.0/n);
相反(它也适用于7,11,...... - 大约。)
答案 1 :(得分:0)
你想要的是Fleury算法在(无向)加权图中找到Euler电路。 Fleury算法从具有DFS的随机位置开始,并且如果该边缘没有桥接图形,则查找下一个要行进的边缘,这意味着将图形分成两部分。我不确定你想用乌龟和数学做什么?你能详细说明吗?