如何在用户单击的位置绘制三角形



我试图在用户点击的位置画一个三角形。

这就是我迄今为止所做的:

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

选择一个尺寸并将其称为size:

int[] xPoints = {xPosition, xPosition, xPosition + SIZE))};
int[] yPoints = {yPosition, yPosition + SIZE, yPosition))};

这将绘制一个在不同点上大小不变的三角形。然而,如果你想要一个指向特定方向的特定类型的三角形,你需要使用一些几何,也许还有三角来进行计算。

相关内容

  • 没有找到相关文章

最新更新