我正在尝试在用户单击的位置绘制一个三角形。

到目前为止,这是我所做的:

int[] xPoints = {(xPosition / 2), xPosition, (xPosition + (xPosition / 2))};
int[] yPoints = {(yPosition + yPosition), yPosition, (yPosition + yPosition)};
g.drawPolygon(xPoints, yPoints, 3);


问题是三角形的大小取决于xPosition和yPosition(这些取自鼠标坐标)。

有什么想法可以将固定大小的三角形放置在指定的X和Y坐标上吗?

最佳答案

不要在第一和第三点上使用xPosition / 2yPosition,而是使用与xPosition的固定偏移量,如下所示:

//use whatever size you want
//this will make a triangle with the top at the clicked point
int halfWidth = 50, height = 100;
int[] xPoints = { xPosition - halfWidth, xPosition, xPosition + halfWidth };
int[] yPoints = { yPosition + height, yPosition, yPosition + height };


您可以试一下大小,但是如果希望它是等边的,则height应该是Math.sqrt(3) * halfWidth

09-10 23:11