我试图在用户点击的位置画一个三角形。
这就是我迄今为止所做的:
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
。
选择一个尺寸并将其称为size:
int[] xPoints = {xPosition, xPosition, xPosition + SIZE))};
int[] yPoints = {yPosition, yPosition + SIZE, yPosition))};
这将绘制一个在不同点上大小不变的三角形。然而,如果你想要一个指向特定方向的特定类型的三角形,你需要使用一些几何,也许还有三角来进行计算。