Java 按网格顺序排列三角形

Java 按网格顺序排列三角形,java,geometry,Java,Geometry,我的程序自动生成三角形,但是在JPanel上三角形的排列是随机的。如何按网格顺序绘制三角形?谢谢 编辑: for(int i = 0; i < 10; i++) { xCoord[0] = generator.nextInt(MAX_WIDTH); yCoord[0] = generator.nextInt(MAX_HEIGHT); xCoord[1] = (int) (xCoord[0] - xWidth); xCoord[2] = (int) (xCoor

我的程序自动生成三角形,但是在JPanel上三角形的排列是随机的。如何按网格顺序绘制三角形?谢谢

编辑:

for(int i = 0; i < 10; i++)    
{ 

  xCoord[0] = generator.nextInt(MAX_WIDTH);
  yCoord[0] = generator.nextInt(MAX_HEIGHT);

  xCoord[1] = (int) (xCoord[0] - xWidth);
  xCoord[2] = (int) (xCoord[1] + (xWidth/2));         

  yCoord[1] = yCoord[0];
  yCoord[2] = (int) (yCoord[1] - yHeight);  

  triangles.add( new Polygon(xCoord,yCoord, 3)); 
}
看一看

编辑:

修改上面链接中的示例,可以用一些更固定的点替换随机多边形点。在
paintComponent
方法中,您可以替换:

for (int j = 0; j < 3; j++) {
    xCoord[j] = generator.nextInt(maxCellWidth)
                    + (maxCellWidth * xMultiple);
    yCoord[j] = generator.nextInt(maxCellHeight)
                    + (maxCellHeight * yMultiple);
}
为了好玩,取消注释xCoord[0]的第二个设置将使顶点沿x轴在一个随机点上,但三角形的底部两点将是固定的,并且它们之间的距离恒定

看一看

编辑:

修改上面链接中的示例,可以用一些更固定的点替换随机多边形点。在
paintComponent
方法中,您可以替换:

for (int j = 0; j < 3; j++) {
    xCoord[j] = generator.nextInt(maxCellWidth)
                    + (maxCellWidth * xMultiple);
    yCoord[j] = generator.nextInt(maxCellHeight)
                    + (maxCellHeight * yMultiple);
}
为了好玩,取消注释xCoord[0]的第二个设置将使顶点沿x轴在一个随机点上,但三角形的底部两点将是固定的,并且它们之间的距离恒定


如果三角形的大小、形状和方向不尽相同(或仅大致相同),则可以将其放置在精确的网格上,使其外圆心点的间距近似为“相等”。您可以尝试其他点,例如九点圆的中心,以查看是否可以找到视觉上更令人愉悦的布局

有关这些点的更多信息,请参见[Wikipedia关于三角形的文章][1]


[1] :“Wikipedia关于三角形的文章”

如果三角形的大小、形状和方向不尽相同(或仅大致相同),则可以将其放置在精确的网格上,使其外心点的间距近似为“相等”。您可以尝试其他点,例如九点圆的中心,以查看是否可以找到视觉上更令人愉悦的布局

有关这些点的更多信息,请参见[Wikipedia关于三角形的文章][1]


[1] :“Wikipedia关于三角形的文章”

提交作业问题时,最好展示你的作业,以便人们提供指导。你想一次绘制一个三角形吗?还是三角形零件?一个三角形可以包括另一个三角形的一部分吗?它们有特定的方向吗?三角形的大小是相似的。有10个三角形,我想在JPanel上有序地排列。提交作业问题时,最好展示你的作业,以便人们能够给予指导。你想一次绘制一个三角形吗?还是三角形零件?一个三角形可以包括另一个三角形的一部分吗?它们有特定的方向吗?三角形的大小是相似的。有10个三角形,我想在JPanel上有序排列。谢谢,但是我怎样才能使一个三角形到另一个三角形的间距相等?例如有10个三角形,我怎样才能使一个三角形到另一个三角形的距离是固定的,例如,20你还想让它们随机成形吗?不,三角形大小是固定的。只有一种尺寸。我需要三角形的排列看起来对称(网格顺序可能是最好的顺序),从JPanel的左侧和右侧都是。谢谢,但是我怎样才能使一个三角形到另一个三角形的间距相等?例如,有10个三角形,我怎样才能使一个三角形之间的距离是固定的,例如,20你还想让它们随机成形吗?不,三角形的大小是固定的。只有一种尺寸。我需要三角形的排列看起来是对称的(网格顺序可能是最好的顺序),从JPanel的左侧和右侧。
xCoord[0] = (maxCellWidth/2) + (maxCellWidth * xMultiple);
// use the following if you need the points to be fixed as well.
//xCoord[0] = generator.nextInt(maxCellWidth) + (maxCellWidth * xMultiple);
yCoord[0] = 5 + (maxCellHeight * yMultiple);
xCoord[1] = 5 + (maxCellWidth * xMultiple);
yCoord[1] = maxCellHeight - 5 + (maxCellHeight * yMultiple);
xCoord[2] = maxCellWidth - 5 + (maxCellWidth * xMultiple);
yCoord[2] = maxCellHeight - 5 + (maxCellHeight * yMultiple);