我不明白为什么我的生产线会以某种角度出现

时间:2014-10-07 06:37:49

标签: java oop

我在高中的这个AP课程中,我们正在使用JAVA或OOP程序,我甚至不知道它是什么。在课堂上,我们没有老师,所以我们基本上必须从包中自我教导自己。我正在学习如何画脸,我很挣扎。

首先,提示符在这里 - http://mrlanda.com/ecs/unit%205/Happy%20Face.htm

请看下面的图片,了解它的外观。

我的问题 - 这就是我到目前为止所得到的,它给我带来了太大的压力,我不知道为什么我的线路会在一个角度里消失。为什么它在某个角度出现的时候我也没有说出来...我的鼻子也有问题我似乎无法找到我想把它放在它的位置一直保持一定的角度原因。

到目前为止我的代码

import apcslib.*; 
public class DrawSquare 
{ 
    public static void main(String[] args) 
    { 
        DrawingTool marker; 
        SketchPad poster; 

        poster= new SketchPad(600,600); 
        marker= new DrawingTool(poster); 

        //left side of box
        marker.up(); 
        marker.move(0,0); 
        marker.down(); 
        marker.turnRight(180); 
        marker.forward(200); 

        //mouth
        marker.up(); 
        marker.move(40,60); 
        marker.down(); 
        marker.turnRight(90); 
        marker.forward(100); 

        //nose
        marker.up(); 
        marker.move(100,100); 
        marker.down(); 
        marker.turnRight(90); 
        marker.forward(100); 

    }
}    

1 个答案:

答案 0 :(得分:0)

根据the API docs for DrawingTool,方法move(double, double)会更改绘图工具的方向。

因此,如果您从之前(40,60)移动的端点(-200,0)执行移至forward,则新的方向向量将为(240,60)。将此旋转90度时,您将朝(60,-240)方向前进。

我已经制作了一个显示行为的草图(不完全按比例缩放 - 我希望我没有混合坐标)...

this is what you are trying

所以你有以下选择来解决这个问题:

  1. 而是直接移至(40,60),您可以移动到临时点,然后强制移动以获得所需的方向:

    // mouth
    marker.up(); 
    marker.move(40,50);
    marker.move(40,60); // now you have direction "up"
    marker.down(); 
    marker.forward(100); 
    
  2. 或者你可以使用move代替`forward

    // mouth
    marker.up(); 
    marker.move(40,60);
    marker.down(); 
    marker.move(40,160); // or whatever your expected target is...