2012-10-16 45 views
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座標?

回答

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

+0

謝謝,這工作! :) –

1

選擇一個大小,並調用它SIZE:

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

這將畫一個三角形,其並不在不同的點改變大小。然而,如果你想要一個指向某個方向的某種三角形,你將需要使用一些幾何和三角函數來進行計算。

+0

我試過這個,但它只是畫一條線 –

+0

@DotNET你說得對。我原來的答案中的觀點都是一條直線。這個編輯版本應該做一個三角形。 –

相關問題