Question: 嘿,我正在编写一个Java代码来创建一个抛物线星,它由大小为400x400的画布上的直线组成.有人能帮帮我吗?下面是这个图应该是什么样子的,下面我将提供给你我到目前为止得到的代码: Graph with the values: a) numLinesQuadrant = 2, b) numLinesQuadrant = 5, c) numLinesQuadrant = 11, d) numLinesQuadrant = 21
My Java code: 导入codedraw. Codedraw; 导入coddraw.;
public class TryOutTwo { public void void main(String []){
CodeDraw myDrawObj = new CodeDraw(400, 400);
//add range?
int numlinesQuadrant = 2;
int xSpacing = 200 / (numlinesQuadrant);
int ySpacing = 200 / (numlinesQuadrant);
for (int i = 0; i < numlinesQuadrant; i++) {
boolean isEven = (i % 2 == 0);
int startX = 200 + (i * xSpacing);
int startY = 200 + (i * ySpacing);
int endX = 200 - (i * xSpacing);
int endY = 200 + (i * ySpacing);
myDrawObj.setColor(Palette.GREEN);
if (isEven) {
myDrawObj.drawLine(200, startY, endX, 200);
} else {
myDrawObj.drawLine(startX, 200, 200, endY);
}
int startX2 = 200 + (i * xSpacing);
int startY2 = 200 + (i * ySpacing);
int endX2 = 200 + (i * xSpacing);
int endY2 = 200 + (i * ySpacing);
myDrawObj.setColor(Palette.CYAN);
if (isEven) {
myDrawObj.drawLine(200, startY2, endX2, 200);
} else {
myDrawObj.drawLine(endX2,200,200,endY2);
}
int startX3 = 200 - (i * xSpacing);
int startY3 = 200 - (i * ySpacing);
int endX3 = 200 - (i * xSpacing);
int endY3 = 200 - (i * ySpacing);
myDrawObj.setColor(Palette.ORANGE);
if (isEven) {
myDrawObj.drawLine(200, startY3, endX3, 200);
} else {
myDrawObj.drawLine(startX3, 200, 200, endY3);
}
int startX4 = 200 + (i * xSpacing);
int startY4 = 200 - (i * ySpacing);
int endX4 = 200 + (i * xSpacing);
int endY4 = 200 - (i * ySpacing);
myDrawObj.setColor(Palette.MAGENTA);
if (isEven) {
myDrawObj.drawLine(200, startY4, endX4, 200);
} else {
myDrawObj.drawLine(startX4, 200, 200, endY4);
}
}
myDrawObj.setColor(Palette.BLACK);
myDrawObj.setLineWidth(2);
myDrawObj.drawLine(0, 200, 400, 200);
myDrawObj.drawLine(200, 0, 200, 400);
myDrawObj.show();
}
}
Also, here is my Task Description if it helps: 我需要做的是:
-
修改
main
方法以实现以下目标:- 生成类似于图中的图像.程序的每一次运行都应该产生一个图像.
- 图像大小应为400 × 400像素,点P(x = 0,y = 0)位于左上角.使用
CodeDraw myDrawObj = new CodeDraw(400, 400)
创建图形窗口.
-
附加说明:
- 引入一个类型为
int
的变量numLinesQuadrant
来确定每个象限的线数.每个轴上直线端点之间的间距应取决于此变量.不需要从命令行输入. - 使用一个循环来绘制整个图像.
- 使用
myDrawObj.setColor(Palette.GREEN)
和类似的方法将绘图 colored颜色 设置为绿色、青色、MAGENTA或橙色. - 循环结束后,在图像的中心画一条黑色的水平和垂直线,都是2像素厚(
myDrawObj.setLineWidth(2)
).
- 引入一个类型为
-
顺便说一句,我正在使用'CodeDraw'文档:https://krassnig.github.io/CodeDrawJavaDoc/v4.0.x/codedraw/CodeDraw.html
我就是找不出一个公式来均匀地分布每条线的起点和终点.当我加更多的线条时,它会变得混乱.每个象限中有两种类型的线.4个坐标中的2个需要灵活计算,其他两个可以保持不变.至少我是这么认为的.为了让它们相应地移动,均匀地分布,我需要一个坚实的公式,我出于某种原因无法弄清楚.