2014-10-07 85 views
0

我在高中的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); 

    } 
}  
+0

什么是DrawingTool ??什么是你使用该 – 2014-10-07 06:57:58

+0

可以请你让我知道什么是图书馆图书馆你用这个应用程序?我可以看到你导入代码:import apcslib。*;但对于我们来说帮助你还不够清楚。 – 2014-10-07 07:14:57

回答

0

根据the API docs for DrawingToolmove(double, double)改变你的绘图工具的方向的方法。

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

我做了展示的行为(没有精确的比例, - 我希望我没有混合坐标)的草图......

this is what you are trying

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

  1. 而不是移到(40,60)直接,你可以强迫迁移到有你想要的方向前移动到一个临时点0

    // mouth 
    marker.up(); 
    marker.move(40,50); 
    marker.move(40,60); // now you have direction "up" 
    marker.down(); 
    marker.forward(100); 
    
  2. ,或者你可以只使用move,而不是`向前

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