繁体   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