2009-02-07 17 views
18

(Sì, purtroppo, questa è una questione compiti a casa)Centro ritrovamento di triangolo 2D

mi è stata data una struct per un triangolo 2D con coordinate x e y, una variabile di rotazione, e così via. Dal punto creato da quelle coordinate xey, dovrei disegnare un triangolo attorno al punto e ruotarlo appropriatamente usando la variabile di rotazione.

Ho familiarità con il disegno di triangoli in OpenGl con GL_TRIANGLES. Il mio problema è in qualche modo estrarre il centro di un triangolo e disegnare i vertici attorno ad esso.

Spero di averlo formulato correttamente, dato che sono un po 'confuso.

Grazie.

modifica: Sì, quello che sto cercando è il centroide.

risposta

33

Ci sono diversi "tipi" di centri di un triangolo. Dettagli su: The Centers of a Triangle. Un metodo rapido per trovare un centro di un triangolo è la media di tutte le coordinate del tuo punto. Ad esempio:

GLfloat centerX = (tri[0].x + tri[1].x + tri[2].x)/3; 
GLfloat centerY = (tri[0].y + tri[1].y + tri[2].y)/3; 

Quando si trova il centro, è necessario ruotare il triangolo attorno al centro. Per fare ciò, traduci in modo che il centro sia ora a (0, 0). Esegui la tua rotazione. Ora inverti la traduzione che hai eseguito prima.

+1

Il collegamento è particolarmente utile. In qualche modo ho perso tutto questo nel mio google. Grazie. – ray

6

Immagino tu intenda il centroide del triangolo !?
Questo può essere facilmente calcolato con 1/3 (A + B + C) dove A, B e C sono i rispettivi punti del triangolo. Se hai i tuoi punti, puoi semplicemente moltiplicarli per la tua matrice di rotazione come al solito. Spero di averti capito bene.

0

Per "medio" si intende "centroide", a.k.a il centro di gravità se si trattasse di un oggetto 3D di spessore e densità costanti?

In tal caso, selezionare due punti e individuare il punto medio tra di essi. Quindi prendi questo punto medio e il terzo punto e trova il punto 1/3 della via tra loro (più vicino al punto medio). Quello è il tuo centroide. Non sto facendo i calcoli per te.

Problemi correlati