gpt4 book ai didi

java - 给定三个点从头开始画一个三角形

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:02 24 4
gpt4 key购买 nike

我正在图形类(class)中学习如何使用点绘制基本形状,但我不知道如何绘制三角形。我认为这与绘制矩形类似,但需要考虑很多变量(例如斜率和不同类型的三角形)。

下面是我绘制矩形的工作函数

drawRectangle(point 1, point 2){
xStart = min(point 1.x, point 2.x)
yStar = min(point 1.y, point 2.y)

xEnd = max(point 1.x, point 2.x)
yEnd = max(point 1.y, point 2.y)

for(int i = yStart, i<= yEnd, i++){
for(int j = xStart, j<= yEnd, j++){
drawPoint(i, j);
}
}
}

drawRectangle 非常简单,因为我只需循环顶点的起点到终点。但是三角形有三个点,怎么办?我考虑过将一个三角形分成两半,这样每一半都有一个平坦的“底”,但我不确定这是否是一个可行的方法。

编辑:也许我不清楚,当我说画一个三角形时,我的意思是一个填充颜色的三角形

最佳答案

您应该为此使用Graphics 界面。您只需用线连接三个点,如下所示:

void drawTriangle(Point one, Point two, Point three, Graphics g){
g.drawLine(one.x, one.y, two.x, two.y);
g.drawLine(one.x, one.y, three.x, three.y);
g.drawLine(two.x, two.y, three.x, three.y);
}

这将绘制一个三角形,给定三个点和一个 Graphics 对象的实例。这比使用 for 循环容易得多。

编辑:

以下是如何“从头开始”,仅使用类中的方法逐个像素地执行此操作(我假设 drawPoint 绘制 1 个像素),使用相同的“连接点”想法,但使用 for 循环:

drawTriangle(point 1, point 2, point 3) {
for(int x = 1.x, x <= 2.x, x++){
for(int y = 1.y, y <= 2.y, y++){
drawPoint(x, y);
}
}
for(int x = 1.x, x <= 3.x, x++){
for(int y = 1.y, y <= 3.y, y++){
drawPoint(x, y);
}
}
for(int x = 2.x, x <= 3.x, x++){
for(int y = 2.y, y <= 3.y, y++){
drawPoint(x, y);
}
}
}

这将所有 3 个点相互连接。

关于java - 给定三个点从头开始画一个三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835468/

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