gpt4 book ai didi

java - 为什么这不会绘制一个直矩形?

转载 作者:行者123 更新时间:2023-12-01 22:12:15 24 4
gpt4 key购买 nike

  1. 设计一个具有以下属性的 Rectangle 类。
  2. 实现您的 Rectangle 类设计。
  3. 使用默认构造函数和可以获取 x 和 y 坐标、矩形长度和宽度的构造函数来尝试创建矩形

我设计了 Rectangle 类(如下所示),当运行 runner 类时,我应该得到两个直/重叠的矩形。相反,我的一个矩形很好,另一个是倾斜的。

我尝试设置“pen.direction(0);”为了解决这个问题,但是没有效果。

原始矩形类:

import gpdraw.*;

public class Rectangle {

private double myX;
private double myY;
private double myWidth;
private double myHeight;
private static DrawingTool pen;
private static SketchPad paper;

public Rectangle() {
paper = new SketchPad(500,500);
pen = new DrawingTool(paper);
}

public Rectangle(double x, double y, double width, double height) {
myX = x;
myY = y;
myWidth = width;
myHeight = height;
}

public double getPerimeter() {
return (2*myWidth) + (2*myHeight);
}

public double getArea() {
return myWidth * myHeight;
}

public void draw() {
pen.up();
pen.move(myX, myY);
pen.down();
pen.forward(myWidth);
pen.turnRight();
pen.forward(myHeight);
pen.turnRight();
pen.forward(myWidth);
pen.turnRight();
pen.forward(myHeight);
}
}

运行者类别:

import gpdraw.*;

public class RectangleRunner {

public static void main(String[] args) {
new SketchPad(500,500);
Rectangle rectA = new Rectangle();
rectA.draw();
Rectangle rectB = new Rectangle(0, -80, 400, 160);
rectB.draw();
Rectangle rectC = new Rectangle(100, -100, 20, 300);
rectC.draw();
}
}

当我从 Runner 类运行程序时,我得到 2 个矩形,其中一个是倾斜的。我应该得到两个不倾斜且重叠的矩形。矩形的方向并不重要。

最佳答案

我猜测 pen.move() 方法会导致记录笔的方向。在这种情况下,您需要在 pen.move() 之后重新调整笔的方向,以指向您期望开始绘制矩形的方向。

pen.up();
pen.move(myX, myY);
pen.direction(0)
pen.down();

关于java - 为什么这不会绘制一个直矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58651241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com