我正在尝试在用户单击的位置绘制一个三角形。
到目前为止,这是我所做的:
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 / 2
和yPosition
,而是使用与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
。