我正在尝试在用户点击的位置绘制一个三角形。
这是我到目前为止所做的:
int[] xPoints = {(xPosition / 2), xPosition, (xPosition + (xPosition / 2))};
int[] yPoints = {(yPosition + yPosition), yPosition, (yPosition + yPosition)};
g.drawPolygon(xPoints, yPoints, 3);
问题在于三角形的大小取决于xPosition和yPosition(这些是从鼠标坐标获取的)。
如何在指定的X和Y坐标处放置固定尺寸的三角形?
答案 0 :(得分:2)
不使用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
。
答案 1 :(得分:1)
选择尺码并称之为SIZE:
int[] xPoints = {xPosition, xPosition, xPosition + SIZE))};
int[] yPoints = {yPosition, yPosition + SIZE, yPosition))};
这将绘制一个三角形,它不会改变不同点的大小。但是,如果你想要某种指向某个方向的三角形,你需要使用一些几何和三角学来进行计算。