Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

22 votos

¿Encontrar el ángulo entre tres puntos?

Tengo las coordenadas cartesianas de tres puntos A, B, C. Necesito encontrar el ángulo formado por ABC usando la 'regla de la mano derecha' desde B.

Estoy teniendo dificultades aquí ya que a veces el ángulo será exterior y otras veces no.

¿Hay una fórmula única que puedo usar para esto?

¡Muchas gracias!

19voto

Fly by Night Puntos 17932

Por supuesto, hay muchas formas de hacer esto. Una forma sería usar vectores. Ten en cuenta que

AB=BABC=CB

El producto escalar (también conocido como producto punto) tiene la propiedad de que

ABBC=

donde \| * \| mide la longitud y \theta es el ángulo entre los dos vectores.

Si tienes A, B y C, entonces puedes calcular \vec{AB} y \vec{BC}. Con eso, encuentra el producto punto \vec{AB}\cdot \vec{BC} y las longitudes \|\vec{AB}\| y \|\vec{BC}\|. Luego sustituye para encontrar \theta, donde

\theta = \arccos \left( \frac{\vec{AB}\cdot \vec{BC}}{ \|\vec{AB}\| \, \|\vec{BC}\|}\right).

Todo lo que hice en el último paso fue reorganizar la fórmula para resolver \theta.

0 votos

¡Gracias! No estoy seguro de entender, ¿la última línea parece estar definida en términos de sí misma? ¿Ya que AB punto BC incluye theta?

3 votos

El producto punto tiene su propia definición y es un número dado. Sucede que se relaciona con \theta de la forma indicada. Permíteme dar un ejemplo. A=(1,2,3), B=(3,2,1) y C = (1,1,1). Entonces \vec{AB} = (2,0,-2) y \vec{BC} = (-2,-1,0). Entonces el producto punto: \vec{AB} \cdot \vec{BC} = (-2)(-2)+(0)(-1)+(2)(0)=4 Las longitudes se encuentran usando Pitágoras: \|\vec{AB}\| = \sqrt{2^2+0^2+(-2)^2} = 2\sqrt{2} \|\vec{BC}\| = \sqrt{(-2)^2+(-1)^2+0^2} = \sqrt{5} Poniendo todo esto junto: \theta = \arccos\left(\frac{4}{2\sqrt{2}\sqrt{5}}\right) \theta \approx 50.8^{\circ}

3 votos

Tu cálculo de ejemplo del producto punto está incorrecto, debería haber sido \vec{AB} \cdot \vec{BC} = (2)(-2) + (0)(-1) + (-2)(0) = -4

6voto

jseg-rth Puntos 8

Hay varias respuestas aquí con un error de signo, por lo que esta corrige la respuesta más votada y agrega un ejemplo que muestra por qué la corrección obtiene la respuesta correcta. Agregué un comentario pero SE lo está ocultando, así que siento que una respuesta es importante para asegurar que la gente no se equivoque (pasé horas depurando código escrito basado en esta respuesta)


Respuesta corregida:

La pregunta pide el ángulo A\rightarrow B \rightarrow C, lo cual interpreto como el ángulo donde B es el vértice. Por lo tanto, reformulando la pregunta, queremos el ángulo entre el vector de B a A, es decir \vec{BA} y el vector de B a C, es decir \vec{BC}.

\begin{array}{ccc} \vec{BA} & = & A-B \\ \vec{BC} & = & C - B \end{array}

El producto escalar (también llamado producto punto) tiene la propiedad de que

\vec{BA} \cdot \vec{BC} = \|\vec{BA}\| \, \|\vec{BC}\| \, \cos\theta

donde \| * \| mide la longitud y \theta es el ángulo entre los dos vectores.

Si tienes A, B y C entonces puedes calcular \vec{BA} y \vec{BC}. Con eso, encuentra el producto punto \vec{BA}\cdot \vec{BC} y las longitudes \|\vec{BA}\| y \|\vec{BC}\|. Luego sustituye para encontrar \theta, donde

\theta = \arccos \left( \frac{\vec{BA}\cdot \vec{BC}}{ \|\vec{BA}\| \, \|\vec{BC}\|}\right).

Todo lo que hice en el último paso fue reorganizar la fórmula para resolver por \theta.


Ejemplo trabajado:

  • A= (1,1,0)
  • B= (0,0,0)
  • C= (0,1,0)

Esto obviamente forma un triángulo rectángulo equilátero con catetos de 1 y una hipotenusa de \sqrt2 y la mayoría de la gente estará instantáneamente consciente de que la respuesta correcta es 45 grados (\pi/4 radianes ~ 0.785) \begin{array}{ccc} \vec{BA} & = & A-B & = & (1,1,0) \\ \vec{BC} & = & C - B & = & (0,1,0) \end{array}

\|\vec{BA}\| = \sqrt2 \|\vec{BC}\| = 1 \vec{BA} \cdot \vec{BC} = (0\times1) +(1\times1)+(0\times0) = 0 + 1 + 0 = 1 \theta = \arccos{(1/(1\times\sqrt2)) = \arccos(1/\sqrt2) = 45 } si elegimos escribir la respuesta en grados, por supuesto.


Respuestas incorrectas anteriores utilizan:

\begin{array}{ccc} \vec{AB} & = & B - A & = & (-1,-1,0) \\ \vec{BC} & = & C - B & = & (0,1,0) \end{array}

Lo cual cambia el signo del producto punto: \vec{AB} \cdot \vec{BC} = (0\times-1) +(1\times-1)+(0\times0) = (0) + (-1) + (0) = -1 Y conduce a \theta = \arccos{(-1/(1\times\sqrt2)) = \arccos(-1/\sqrt2) = 135 }

No hay ningún ángulo entre ninguno de los 3 puntos que pueda describirse como 135 grados.

Como nota al margen, las otras respuestas parecen dar un valor correcto para el "cambio de dirección" o necesario para viajar con éxito a C después de viajar a A desde B, lo cual podría ser útil si quisieras conducir un robot a lo largo de un polígono, pero no veo cómo uno llegaría a esa noción desde la pregunta.

3voto

Rob Thomas Puntos 126

Primero convierta AB y BC en vectores \vec{x}, \vec{y} restando coordenadas. Luego use el producto escalar:

\vec{x} \cdot \vec{y} = |\vec{x}| |\vec{y}| \cos \theta

donde \theta es el ángulo entre los vectores.

De esta manera puede obtener el ángulo entre los vectores.

2voto

Jobayer sheikh Puntos 39

Usando propiedades del triángulo puedes resolver este problema fácilmente,

Sea el triángulo ABC,

a = distancia(C, B)

b = distancia(C, A)

c = distancia(A, B)

Ahora, la propiedad del triángulo dice,

\quad\ 1. \quad\ a^{2} = b^{2} + c^{2} - 2.b.c.CosA

\quad\ \quad\ \quad\ o, cosA = (b^{2} + c^{2} - a^{2}) / 2.b.c

\quad\ \quad\ \quad\ o, A = arccos(b^{2} + c^{2} - a^{2}) / 2.b.c

\quad\ 2. \quad\ b^{2} = a^{2} + c^{2} - 2.c.a.cosB

\quad\ \quad\ \quad\ o, cosB = (a^{2} + c^{2} - b^{2}) / 2.c.a

\quad\ \quad\ \quad\ o, B = arccos(a^{2} + c^{2} - b^{2}) / 2.c.a

\quad\ 3. \quad\ c^{2} = a^{2} + b^{2} - 2.a.b.CosC

\quad\ \quad\ \quad\ o, cosC = (a^{2} + b^{2} - c^{2}) / 2.a.b

\quad\ \quad\ \quad\ o, C = arccos (a^{2} + b^{2} - c^{2}) / 2.a.b

0 votos

¿Tu pregunta no está clara para mí?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X