Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: fiero en 29 de Noviembre de 2003, 01:18:50 PM

Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: fiero en 29 de Noviembre de 2003, 01:18:50 PM
 ¿Cómo se calcula el ángulo entre dos vectores en 3D?
Es una pregunta muy sencilla, pero no consigo hacerlo de una manera fácil. El teorema del coseno da el coseno entre dos vectores, pero siempre en un rango entre 0 y 180 grados. Yo me refiero a una función en que si por ejemplo le metes unos vectores con una diferencia de 45º y luego le metes los vectores a la inversa te dé -45º. Con el teorema del coseno (dotproduct) el resultado siempre sería 45º, no sé si me explico...

un saludo
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: CoLSoN2 en 29 de Noviembre de 2003, 02:11:38 PM
 el angulo entre dos vectores SIEMPRE será un valor entre 0 y 180, a no ser que lo compliques y lo hagas de alguna forma rara. Y si, es con el dot product :P
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: Mars Attacks en 29 de Noviembre de 2003, 02:53:41 PM
 Es que por convenio siempre se toma como ángulo entre dos vectores el ángulo más pequeño (un ángulo negativo sería 360º-ángulo).
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: DraKKaR en 29 de Noviembre de 2003, 04:10:24 PM
 Lo fácile s calcular el coseno del ángulo que forman 2 vectores (dot product). Una vez hecho eso, ¿pq no usas un arcoseno para hallar el ángulo?

Es lo único que se me ocurre.

PD: Para que lo necesitas?  
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: FoS en 29 de Noviembre de 2003, 04:44:38 PM
 Espero que esto responda tu pregunta:

Ángulo de dos vectores u(x1, y1, z1) y v(x2, y2, z2)  

(http://descartes.cnice.mecd.es/Bach_CNST_2/Vectores3D_d3/imagenes/formula_08.gif)

(ole)
De todas formas si tienes alguna duda (nooo) , aqui estoy! (nooo)  
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: FoS en 29 de Noviembre de 2003, 04:50:27 PM
 Me dado cuenta que querías otra cosa! , pero vamos, con esta fórmula y lo que dice Mars Attack, ya lo tienes, transforma el ángulo que te de al que tu quieres obtener.  
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: fiero en 29 de Noviembre de 2003, 06:21:13 PM
 
CitarPD: Para que lo necesitas?

Por ejemplo, para saber si un angulo es convexo o cóncavo en cualquier orientación posible. El dotproduct no vale, ya que siempre devuelve el ángulo menor, y para saber si es cóncavo o convexo habria que saber si el ángulo es mayor de 180º (o negativo, que es lo mismo)

un saludo
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: CoLSoN2 en 29 de Noviembre de 2003, 06:23:29 PM
 pero tio .. si el dot product te devuelve 90º, puedes tomar tanto 90 como 270 como angulo entre los vectores.. tienes que añadir algun criterio más para identificar cual de los dos angulos quieres... angulo concavo/convexo? eso como se come?
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: fiero en 29 de Noviembre de 2003, 07:52:59 PM
 Bueno, ángulo concavo/convexo me refería a dos vectores que forman parte de un polígono cerrado, si no no tiene mucho sentido. Sí, habrá que establecer un criterio a la hora de calcular el sentido positivo o negativo....

Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: Amatar en 29 de Noviembre de 2003, 08:10:42 PM
 Para saber si un poligono es concavo o convexo no necesitas saber el angulo, es mas sencillo: coges un lado como base y miras si el siguiente punto del poligono cae a la "izquierda" o a la "derecha". Despues coges el lado siguiente (el del punto que has calculado antes con el ultimo punto del segmento anterior) y repites con el siguiente punto. Si todos te dan hacia un lado es que es convexo.

Me he explicado bien?  O_O . Si no, me explico de nuevo a ver si cuela  :P .

P.D.: esto es en 2D, en 3D me parece que es mucho mas complicado.
Título: Calcular El Ángulo Entre Dos Vectores En 3d
Publicado por: DraKKaR en 30 de Noviembre de 2003, 03:50:40 PM
 Ei, me parece un buen truco. Y creo que peude servirle a Fiero, puesto que si para lo que necesita lo del ángulo es para rasterizar polígonos, esto se hace en 2D.