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

时间:2012-10-16 18:04:25

标签: java swing graphics drawing

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

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

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

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

如何在指定的X和Y坐标处放置固定尺寸的三角形?

2 个答案:

答案 0 :(得分:2)

不使用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

答案 1 :(得分:1)

选择尺码并称之为SIZE:

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

这将绘制一个三角形,它不会改变不同点的大小。但是,如果你想要某种指向某个方向的三角形,你需要使用一些几何和三角学来进行计算。