簡體   English   中英

我不明白為什么我的線要傾斜

[英]I don't understand why my line is going at an angle

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

    }
}    

根據DrawingTool的API文檔,方法move(double, double)更改了繪圖工具的方向。

因此,如果你執行移動到(40,60)從端點(-200,0)你以前的forward移動你的新的方向向量會(240,60) 將其旋轉90度時,您將朝(60,-240)方向前進。

我已經繪制了一個顯示行為的草圖(不完全是按比例繪制的-我希望我沒有混合坐標)...

這就是你想要的

因此,您可以使用以下選項來解決此問題:

  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... 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM