1

ユーザーがクリックした位置に三角形を描こうとしています。

これは私がこれまでに行ったことです:

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

問題は、三角形のサイズが xPosition と yPosition によって異なることです (これらはマウス座標から取得されます)。

指定された X 座標と Y 座標に固定サイズの三角形を配置する方法はありますか?

4

2 に答える 2

2

xPosition / 21 番目と 3 番目のポイントにandを使用する代わりに、次のような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 };

サイズをいじることができますが、等辺にしたい場合heightMath.sqrt(3) * halfWidth.

于 2012-10-16T18:12:12.580 に答える
1

サイズを選び、それをSIZEと呼びます。

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

これにより、さまざまなポイントでサイズが変わらない三角形が描画されます。ただし、特定の方向を指す特定の種類の三角形が必要な場合は、計算を行うためにいくつかのジオメトリとおそらく三角法を使用する必要があります。

于 2012-10-16T18:08:32.280 に答える