2014-10-07 34 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... 
    
相關問題