22 votos

Fórmula para proyectar un vector sobre un plano

Tengo un plano de referencia formado por 3 puntos en $\mathbb{R}^3$ - $A, B$ y $C$ . Tengo un cuarto punto, $D$ . Me gustaría proyectar el vector $\vec{BD}$ en el plano de referencia, así como proyectar el vector $\vec{BD}$ en el plano ortogonal al plano de referencia en el vector $\vec{AB}$ . En última instancia, necesito el ángulo entre $\vec{AB}$ y $\vec{BD}$ tanto cuando los vectores se proyectan sobre el plano de referencia como sobre el plano ortogonal. He realizado tutoriales sobre la proyección de un vector sobre una recta en $\mathbb{R}^2$ pero no he averiguado cómo traducirlo a $\mathbb{R}^3$ ...

Tenga en cuenta que el diagrama sólo muestra el plano de referencia como paralelo al $xy$ plano por conveniencia. En mis ejemplos, el plano de referencia puede estar en cualquier orientación. Estoy utilizando datos de coordenadas 3D de un rastreador de movimiento electromagnético y el plano de referencia estará en constante movimiento. Entiendo que el producto cruzado de los dos vectores $\vec{AB} times \vec{BC}$ resulta el vector normal a su plano. Tengo 2 métodos diferentes para calcularlo pero estoy un poco perdido cuando llego a este punto. He visto tanto la notación del vector unitario como la notación del vector columna pero estoy confundido al moverme entre los diferentes estilos. Sería de gran ayuda si pudieras decirme el nombre formal de la notación/ecuaciones que utilizas. Conozco la ecuación escalar de un plano a través del punto $(a,b,c)$ con normalidad $\hat{n} = [n_1, n_2, n_3]$ es:
$$ n_1(x-a) + n_2(y-b) +n_3(z-c) = 0 $$ y la definición de ecuación lineal estándar es: $$ Ax + By + Cz = D $$ pero me vendrían bien algunos consejos sobre cuándo la ecuación es $=D$ y cuando es $=0$ así como cualquier ecuación adicional para un plano y en qué circunstancias son apropiadas las diferentes formas. Espero que haya tenido sentido aquí. Gracias por cualquier ayuda que pueda proporcionar. enter image description here

25voto

MoonKnight Puntos 951

Si $A$ , $B$ , $C$ no están en la misma línea, entonces $\vec{AB}\times \vec{BC}$ le dará la dirección de su vector normal del plano de referencia $\hat{n}_1$ . Creo que hay que saber hacer la normalización para que $|\hat{n}_1|=1$

Entonces la proyección de $\vec{BD}$ en el plano de referencia es $\vec{BD}-(\vec{BD}\cdot \hat{n}_1)\hat{n}_1$

Otro avión $\hat{n}_2$ ortogonal al plano de referencia ABC se puede encontrar como $\vec{AB}\times\hat{n}_1$ (de nuevo hay que normalizarlo). A continuación, la proyección de $\vec{BD}$ en ese plano también se puede encontrar de forma similar a la mostrada para el primer plano.

1 votos

Gracias @MoonKnight - Tuve los suegros quedarse por unos días, así que estoy volviendo a esto. Estoy un poco confuso en la normalización - se refiere a la unidad de vector con longitud =1? No estoy seguro de cómo mis resultados se supone que mirar para eso. Creo que debo multiplicar la inversa de la longitud del vector por el propio vector. Eso me daría otro vector con 3 componentes, ¿correcto? De nuevo, la notación me está confundiendo. ¿Puedes confirmar que tu fórmula dice vector BD menos [el producto punto de (BDn) multiplicado por n]? Gracias.

0 votos

Otra cosa que espero aclarar: ¿Su método encuentra primero el vector normal a los vectores formados por las coordenadas de mis sensores y luego encuentra el plano de referencia real creado por los sensores? Me confunde que digas en el 2º párrafo "la proyección de BD sobre el plano de referencia" cuando parece que sólo me has hecho encontrar n1 como vector normal, NO la referencia. Para que quede claro, me refiero al plano de referencia como el plano formado por los puntos ABC y el plano ortogonal a éste como el vector normal. Pero, ¿cómo se pasa de un vector a un plano? ¿Realmente son los mismos coeficientes

0 votos

@MsHF 1) Sí la normalización significa hacer que su vector tenga una longitud de $1$ . Por ejemplo $\hat{n}_A=\vec{A}/|\vec{A}|$ es el vector normalizado en la dirección del vector $A$ .

3voto

Berci Puntos 42654
  1. Obtenga la ecuación del plano de referencia mediante ${\bf n}:=\vec{AB}\times\vec{AC}$ el lado izquierdo de la ecuación será el producto escalar ${\bf n}\cdot{\bf v}$ donde $\bf v$ es el (vector del origen al) punto variable de la ecuación, y el lado derecho es una constante, tal que, por ejemplo ${\bf v}=A$ tiene que satisfacerla, es decir, la ecuación será

    ${\bf n}\cdot{\bf v}={\bf n}\cdot A\,$ .

  2. Calcular las componentes ortogonales y paralelas de $\vec{BD}$ en relación con $\bf n$ : buscamos vectores $\vec{BD}_\perp$ y $\vec{BD}_\| $ tal que $\vec{BD}=\vec{BD}_\perp+\vec{BD}_\| $ , $\ \vec{BD}_\perp\ \perp\ {\bf n}$ y $\ \vec{BD}_\| \,\parallel\,{\bf n}$ .
    Eso significa, $\vec{BD}_\|=\lambda{\bf n}$ para algunos $\lambda\in\Bbb R$ y $\vec{BD}_\perp\cdot{\bf n}=0$ . Utilizando esto y multiplicando escalarmente por $\bf n$ : $$\vec{BD}\cdot{\bf n}=0+\lambda\cdot{\bf n}^2$$ esto le permite calcular $\lambda$ Por lo tanto $\vec{BD}_\|$ entonces $\vec{BD}_\perp:=\vec{BD}-\vec{BD}_\|$ .

  3. Haz lo mismo para el otro plano de referencia, (uno de) sus vectores normales será ${\bf n}\times\vec{AB}$ .

  4. El ángulo $\varphi$ de vectores ${\bf u}$ y ${\bf v}$ puede calcularse mediante la siguiente fórmula: $$\cos\varphi=\frac{{\bf u}\cdot{\bf v}}{|{\bf u}|\,|{\bf v}|} \,.$$

0 votos

Gracias por tu respuesta @Berci. Tenía a mis suegros aquí así que estoy volviendo al trabajo. Me cuesta mucho entender. Esto es lo que puedo entender: El primer paso es el producto cruzado de los dos vectores sobre el plano de referencia. Luego te refieres al producto escalar del vector posición (desde el origen al punto) por n - ¿es lo mismo que un producto punto? Me pierdo cuando dices que el lado derecho es una constante tal que v=A ¿Qué es A? ¿Qué es lambda ()? ¿Es n al cuadrado un producto punto, un producto cruzado o una simple multiplicación de la longitud del vector n (que debería ser sólo 1 si se normaliza, sí?) por sí mismo.

1voto

Graydiation Puntos 13

Que el desplazamiento de $\mathbf{\vec{{v}_{0}{v}_{1}}}$ sea un vector dirigido desde $\mathbf{\vec{v}_{0}}$ a $\mathbf{\vec{v}_{1}}$ definido como $\left(\mathbf{\vec{v}_{1}}-\mathbf{\vec{v}_{0}}\right)$ .

$$\mathtt{\operatorname{Let }}\mathbf{V=\left\{\vec{a},\vec{b}\right\}};$$

"Dejemos $\operatorname{Ortho}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)$ sea la ortogonalización de $\mathbf{\vec{a}}$ en comparación con $\mathbf{\vec{b}}$ sobre $\mathbf{\vec{0}}$ ."

$ \mathbf{\forall\vec{a}\forall\vec{b}}\left(\text{Ortho}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)=\mathbf{\vec{a}}-\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\implies\mathbf{\forall\vec{v}}\left(\pm\left(\mathbf{\vec{a}}\times\mathbf{\vec{b}}\right)\cdot\mathbf{\vec{v}}=\mathrm{0}\land\mp\left(\mathbf{\vec{b}}\times\mathbf{\vec{a}}\right)\cdot\mathbf{\vec{v}}=\mathrm{0}\land\mathbf{\vec{v}}\in\mathbf{V}\implies\text{Ortho}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\cdot\mathbf{\vec{v}}=0\land\left(\mathbf{\vec{v}}\in\mathbb{R}^3\implies\text{Ortho}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\in\mathbb{R}^3\right)\right)\right) $

"Dejemos $\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)$ sea la proyección (lineal) de $\mathbf{\vec{a}}$ en $\mathbf{\vec{b}}$ sobre $\mathbf{\vec{0}}$ ."

$ \mathbf{\forall\vec{a}\forall\vec{b}}\left(\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)=\frac{\mathbf{\vec{a}}\cdot\mathbf{\vec{b}}}{\mathbf{\vec{b}}\cdot\mathbf{\vec{b}}}\mathbf{\vec{b}}\land\mathbf{\vec{b}}\not=\mathbf{\vec{0}}\land\frac{\pi}{2}= \arccos\left(\frac{\left(\mathbf{\vec{a}}-\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\right)\cdot\left(\mathbf{\vec{b}}-\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\right)}{\Vert\mathbf{\vec{a}}-\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\Vert \Vert\mathbf{\vec{b}}-\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\Vert}\right)\land\left(\mathbf{\vec{b}}\in\mathbb{R}^n\land\mathbf{\vec{a}}\in\mathbb{R}^n\land\mathbf{\vec{0}}\in\mathbb{R}^n\implies\text{Proj}_{\mathbf{\vec{b}}}\left(\mathbf{\vec{a}}\right)\in\mathbb{R}^n\right)\right) $

La fórmula para proyectar un vector sobre un plano.

"Dejemos $\vec{F}\left(\mathbf{\vec{v}},i,\mathbf{\vec{X}}_{i,j}\right)$ sea la ortogonalización de $\mathbf{\vec{v}}$ en comparación con $\mathbf{\vec{X}}_{i,1}$ sobre $\mathbf{\vec{X}}_{i,2}$ ."

$ \therefore\forall \mathbf{\vec{v}}\exists\mathbf{\vec{X}}\left(\mathbf{\vec{X}}\in\left\{\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)},\mathbf{\vec{O}_{\mathbf{V}}\left(P\right)}\right\}\implies\vec{F}\left(\mathbf{\vec{v}},i,\mathbf{\vec{X}}_{i,j}\right)=\mathbf{\vec{v}}-\text{Proj}_{\left(\mathbf{\vec{X}}_{i,1}-\mathbf{\vec{X}}_{i,2}\right)}\left(\mathbf{\vec{v}}-\mathbf{\vec{X}}_{i,2}\right)\right) $

el codominio trazado de $\vec{F}$ de un trazado aleatorio $\mathbf{\vec{v}}$ sobre una instancia de $\mathbf{\vec{X}}$ .


"Un plano de referencia formado por 3 puntos en $\mathbb{R}^3$ ."

Que el plano $\mathbf{P}$ sea una tupla binaria de un constructor normal $\vec{\text{C}}$ utilizando punto(s) de cepillado $\mathbf{\vec{p}}\in\mathbf{V}$ :

$\mathbf{P}= \left(\vec{\text{C}}\left(\mathbf{\vec{p}}\right),\mathbf{\vec{p}}\right)\iff\left(\mathbf{\vec{n}}=\vec{\text{C}}\left(\mathbf{\vec{p}}\right)\implies \mathbf{P}\overset{\text{def}}{=}\forall\mathbf{\vec{v}}\left(\left(\mathbf{\vec{n}}-\mathbf{\vec{0}}\right)\cdot\left(\mathbf{\vec{v}}-\mathbf{\vec{p}}\right)=0\right)\right);$

$\mathtt{\text{Let }}\mathbf{V}=\left\{\vec{A},\vec{B},\vec{C}\right\};$

Dejemos que $\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}$ es una estructura de datos en forma de matriz que contiene todas las posibles implementaciones de planos utilizando todos los vectores en $\mathbf{V}$ dado $\mathbf{P}$ . $$ \mathtt{\text{Let }}\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}= \begin{bmatrix} \left(\frac{(\vec{A}-\vec{C}) \times (\vec{B}-\vec{C})}{\Vert(\vec{A}-\vec{C}) \times (\vec{B}-\vec{C})\Vert}+\vec{C}, \vec{C}\right) \\ \left(\frac{(\vec{A}-\vec{B}) \times (\vec{C}-\vec{B})}{\Vert(\vec{A}-\vec{B}) \times (\vec{C}-\vec{B})\Vert}+\vec{B}, \vec{B}\right) \\ \left(\frac{(\vec{B}-\vec{A}) \times (\vec{C}-\vec{A})}{\Vert(\vec{B}-\vec{A}) \times (\vec{C}-\vec{A})\Vert}+\vec{A}, \vec{A}\right) \\ \left(\frac{(\vec{B}-\vec{C}) \times (\vec{A}-\vec{C})}{\Vert(\vec{B}-\vec{C}) \times (\vec{A}-\vec{C})\Vert}+\vec{C}, \vec{C}\right) \\ \left(\frac{(\vec{C}-\vec{B}) \times (\vec{A}-\vec{B})}{\Vert(\vec{C}-\vec{B}) \times (\vec{A}-\vec{B})\Vert}+\vec{B}, \vec{B}\right) \\ \left(\frac{(\vec{C}-\vec{A}) \times (\vec{B}-\vec{A})}{\Vert(\vec{C}-\vec{A}) \times (\vec{B}-\vec{A})\Vert}+\vec{A}, \vec{A}\right) \end{bmatrix}; $$

Ejemplo: $$\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{2}=\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{2,j}=\left(\frac{(\vec{A}-\vec{B}) \times (\vec{C}-\vec{B})}{\Vert(\vec{A}-\vec{B}) \times (\vec{C}-\vec{B})\Vert}+\vec{B}, \vec{B}\right);$$ $$\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{2,1}=\frac{(\vec{A}-\vec{B}) \times (\vec{C}-\vec{B})}{\Vert(\vec{A}-\vec{B}) \times (\vec{C}-\vec{B})\Vert}+\vec{B};$$

$$\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{2,2}=\vec{B};$$

"El plano ortogonal al plano de referencia en $\vec{AB}$ ."

Dejemos que $\mathbf{\vec{O}_{\mathbf{V}}\left(P\right)}$ heredan la definición de $\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}$ pero redefine el constructor normal $\vec{\text{C}}\left(\mathbf{\vec{p}}\right)$ implementado en $\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}$ . $$ \mathtt{\text{Let }}\mathbf{\vec{O}_{\mathbf{V}}\left(P\right)} = \begin{bmatrix} \left(\frac{\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{2,1}-\vec{B}\right)\times(\vec{A}-\vec{B})}{\Vert\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{2,1}-\vec{B}\right)\times(\vec{A}-\vec{B})\Vert}+\vec{B}, \vec{B}\right) \\ \left(\frac{\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{3,1}-\vec{A}\right)\times(\vec{B}-\vec{A})}{\Vert\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{3,1}-\vec{A}\right)\times(\vec{B}-\vec{A})\Vert}+\vec{A}, \vec{A}\right) \\ \left(\frac{\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{5,1}-\vec{B}\right)\times(\vec{C}-\vec{B})}{\Vert\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{5,1}-\vec{B}\right)\times(\vec{C}-\vec{B})\Vert}+\vec{B}, \vec{B}\right) \\ \left(\frac{\left(\athbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{6,1}-\vec{A}\right)\times(\vec{C}-\vec{A})}{\Vert\left(\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{6,1}-\vec{A}\right)\times(\vec{C}-\vec{A})\Vert}+\vec{A}, \vec{A}\right) \end{bmatrix}; $$

Proyecto $\vec{BD}$ en el plano de referencia para cualquier $i \in [1,6]$ en $R\left(i\right)$ :

$$ \mathtt{\text{Let }}R\left(i\right)=\begin{Bmatrix} \vec{D}_r=\vec{F}\left(\vec{D},i,\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{i,j}\right), \\ \vec{B}_r=\vec{F}\left(\vec{B},i,\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{i,j}\right), \\ \vec{A}_r=\vec{F}\left(\vec{A},i,\mathbf{\vec{R}_{\mathbf{V}}\left(P\right)}_{i,j}\right), \\ \vec{BD}_r=\vec{D}_r-\vec{B}_r, \\ \vec{AB}_r=\vec{B}_r-\vec{A}_r \end{Bmatrix}; $$

Proyecto $\vec{BD}$ en el plano ortogonal para cualquier $i \in [1,4]$ en $O\left(i\right)$ :

$$ \mathtt{\text{Let }}O\left(i\right)=\begin{Bmatrix} \vec{D}_{o}=\vec{F}\left(\vec{D},i,\mathbf{\vec{O}_{\mathbf{V}}\left(P\right)}_{i,j}\right), \\ \vec{B}_{o}=\vec{F}\left(\vec{B},i,\mathbf{\vec{O}_{\mathbf{V}}\left(P\right)}_{i,j}\right), \\ \vec{A}_{o}=\vec{F}\left(\vec{A},i,\mathbf{\vec{O}_{\mathbf{V}}\left(P\right)}_{i,j}\right), \\ \vec{BD}_{o}=\vec{D}_{o}-\vec{B}_{o}, \\ \vec{AB}_{o}=\vec{B}_{o}-\vec{A}_{o} \end{Bmatrix}; $$

El ángulo entre la proyección de $\vec{AB}$ y $\vec{BD}$ .

mientras se proyecta en el plano ortogonal: $\theta_{A_{o},D_{o}}=\arccos\left(\frac{\vec{AB}_{o}\cdot\vec{BD}_{o}}{\Vert\vec{AB}_{o}\Vert\Vert\vec{BD}_{o}\Vert}\right)\implies\theta_{a_{o},d_{o}}= \arccos\left(\frac{\left(\vec{B}_{o}\vec{A}_{o}\right)\cdot\left(\vec{D}_{o}\vec{B}_{o}\right)}{\Vert\vec{B}_{o}-\vec{A}_{o}\Vert\Vert\vec{D}_{o}\vec{B}_{o}\Vert}\right);$

mientras se proyecta en el plano de referencia: $ \theta_{A_{r},D_{r}}=\arccos\left(\frac{\vec{AB}_{r}\cdot\vec{BD}_{r}}{\Vert\vec{AB}_{r}\Vert\Vert\vec{BD}_{r}\Vert}\right)\implies\theta_{a_{r},d_{r}}= \arccos\left(\frac{\left(\vec{B}_{r}\vec{A}_{r}\right)\cdot\left(\vec{D}_{r}\vec{B}_{r}\right)}{\Vert\vec{B}_{r}-\vec{A}_{r}\Vert\Vert\vec{D}_{r}\vec{B}_{r}\Vert}\right); $

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