1 votos

Encontrar la rotación de un plano tangente en una esfera 3D

Tengo una esfera 3D y tengo un punto específico (por ejemplo en la ubicación 20 metros en el eje X, 0 metros en el eje Y y -20 metros en el eje Z) en esa esfera. El centro de la esfera es $\begin{pmatrix}0&0&0\\ \end{pmatrix}$ (unidades en metros) y tiene un radio desconocido el radio es

$$\sqrt{(x-a)^2+(y-b)^2+(z-c)^2}=r$$ $$\sqrt{(20-0)^2+(0-0)^2+(-20-0)^2}=r$$ $$28.28427=r$$

En ese punto colocaré un plano 3D. ¿Cómo debo girar ese plano para que quede centrado en el centro de la esfera?

Aquí hay un dibujo simple de la situación, pero debe en tres dimensiones.

  • Dada: el punto de la mitad del plano
  • Preguntado: Grados de las esquinas en los ejes X, Y y Z y el plano

enter image description here

Me gustaría conseguir una fórmula que pudiera calcular eso. Las esquinas deben calcularse en grados.

2voto

David K Puntos 19172

Dado que la pregunta ha sido revisada significativamente, he revisado esta respuesta.

Mi interpretación de la pregunta es que el plano debe pasar por un punto determinado $T$ en la esfera, y que el plano debe ser perpendicular al radio de la esfera en el punto dado $T.$

También podríamos decir que el plano debe ser tangente a la esfera en el punto dado $T$ Es una forma diferente de plantear el requisito, pero el resultado será siempre el mismo, porque un plano tangente es siempre perpendicular al radio en el punto de tangencia.

Se desea conocer el ángulo que forma el plano con cada uno de los tres ejes de coordenadas. En el ejemplo dado, donde $T=(20,0,-20),$ el plano es paralelo a la $y$ eje y no lo interseca en absoluto. Aunque no hay un punto de intersección en el que medir el ángulo, es conveniente decir que el ángulo con el eje es cero.

Para calcular los ángulos, es útil construir un vector de longitud $1$ perpendicular al plano. Este vector también se conoce como unidad normal vector. ("Unidad" porque tiene longitud $1,$ "normal" porque es perpendicular al plano).

El punto de tangencia, $T,$ define un vector $\newcommand{r}{\mathbf r}\r$ desde el centro de la esfera hasta $T$ que es perpendicular al plano tangente. Como las coordenadas del centro están definidas como $(0,0,0)$ en este problema, el vector $\r$ tendrá las mismas coordenadas que $T$ ; en el ejemplo, $\r = T - (0,0,0) = (20,0,-20) - (0,0,0) = (20,0,-20) = T.$ La longitud de $\r$ no es $1,$ Sin embargo, dividimos su longitud por el radio de la esfera para obtener un vector unitario, y llamamos al resultado $\hat\r.$ El radio de la esfera es sólo la longitud del vector $\r,$ escrito $\lVert\r\rVert,$ como ya se observa implícitamente en el texto de la pregunta. Por lo tanto, $$ \hat\r = \frac{\r}{\lVert\r\rVert} = \frac{(20,0,-20)}{\sqrt{20^2 + 0^2 + (-20)^2}} = \frac{(20,0,-20)}{20\sqrt2} = \left(\frac1{\sqrt2}, 0, -\frac1{\sqrt2}\right). $$

Utilizaremos el siguiente hecho sobre el "producto punto" de dos vectores $\newcommand{u}{\mathbf u}\u$ y $\newcommand{v}{\mathbf v}\v$ : $$ \u\cdot \v = \lVert \u\rVert \lVert\v\rVert \cos\theta,$$ donde $\theta$ es el ángulo entre $\u$ y $\v.$ Un vector unitario paralelo al $x$ eje es $\newcommand{x}{\hat{\mathbf x}}\x = (1,0,0),$ así que para obtener el ángulo $\theta_x$ entre $\hat\r$ y $\x$ observamos que $$ \x \cdot \hat\r = \lVert\x\rVert \lVert\hat\r\rVert \cos\theta_x = (1)(1)\cos\theta_x = \cos\theta_x. $$ De ello se desprende que $\theta_x = \arccos(\x \cdot \hat\r),$ donde $\arccos$ es la inversa de la función coseno.

En el ejemplo dado, el lado izquierdo de la ecuación anterior se evalúa como $$ \x \cdot \hat\r = (1,0,0) \cdot \left(\frac1{\sqrt2}, 0, -\frac1{\sqrt2}\right) = \left(1\left(\frac1{\sqrt2}\right), 0(0), 0\left(-\frac1{\sqrt2}\right)\right) = \frac1{\sqrt2} = \hat r_x, $$ donde $\hat r_x$ es el $x$ -coordinación de $\hat\r.$ De hecho, no importa dónde pongamos $T$ en la esfera, al final $\x \cdot \hat\r = \hat r_x,$ y por lo tanto $$ \theta_x = \arccos(\hat r_x). $$

Del mismo modo, los ángulos $\hat\r$ hace con el $y$ -y con el eje $z$ -eje son $\theta_y = \arccos(\hat r_y)$ y $\theta_z = \arccos(\hat r_z),$ respectivamente, donde $\hat r_y$ y $\hat r_z$ son los $y$ -coordenadas y $z$ -coordinación de $\hat r.$

Ahora tenemos tres ángulos, pero no son los que pediste. Así que considera el triángulo formado por los tres puntos $M=(0,0,0)$ (el centro de la esfera), $T$ (el punto de tangencia), y $A$ (la intersección del plano con el $x$ -eje). Estos tres puntos forman un triángulo rectángulo perpendicular al plano tangente. (Para el punto general $T,$ si el $y$ coordenada no es cero este triángulo no estará en el $x,z$ plano, pero seguirá siendo un triángulo rectángulo y seguirá siendo perpendicular al plano tangente). Hemos encontrado el ángulo de este triángulo en $M,$ a saber, $\theta_x.$ El ángulo en $A$ es $90^\circ - \theta_x,$ porque la suma de los dos ángulos debe ser $90$ grados. Así que si $\phi_x$ es el ángulo de intersección del plano con el $x$ -eje en $A,$ entonces $$ \phi_x = 90^\circ - \theta_x = 90^\circ - \arccos(\hat r_x). $$

Podemos escribir esto un poco más sencillo utilizando el hecho de que $\sin(\theta) = \cos(0^\circ -\theta)$ para cualquier ángulo $\theta,$ así que $$ \phi_x = \arcsin(\hat r_x) $$ donde $\arcsin$ es la función seno inversa. Del mismo modo, los ángulos en los que el plano tangente se cruza con el $y$ -eje y el $z$ -eje son $\phi_y = \arcsin(\hat r_y)$ y $\phi_z = \arcsin(\hat r_z),$ respectivamente.

Resumen

En resumen, el algoritmo es:

Tomar las coordenadas del punto tangente $T$ y dividir por el radio de la esfera. (Si $T = (T_x,T_y,T_z),$ el radio es $\sqrt{T_x^2 + T_y^2 + T_z^2}.$ ) El vector que se obtiene de esta operación, $(\hat r_x, \hat r_y, \hat r_z),$ es un vector normal unitario del plano tangente en $T.$

Los ángulos que el plano tangente forma con el $x$ -eje, $y$ -eje, y $z$ -son entonces (respectivamente) $$\phi_x = \arcsin(\hat r_x),$$ $$\phi_y = \arcsin(\hat r_y),$$ $$\phi_z = \arcsin(\hat r_z).$$

Si se implementa este algoritmo en un lenguaje de programación típico utilizando una biblioteca matemática típica, el $\arcsin$ puede ser una función denominada asin y la salida de esta función será un ángulo en radianes. Como quieres una respuesta en grados, si la función da radianes tendrás que necesita convertirlos a grados multiplicando por $\frac{\pi}{180}.$


Aquí están algunas partes de la antigua respuesta. Las dejo porque pueden ser útiles para alguien que intente trabajar con una geometría como la de la pregunta.

La descripción del plano "centrado" es muy poco clara. Basado en su explicación del propósito de este plano, supongo que quiere decir que la línea de visión de $(0,0,0)$ a $(20,0,-20)$ debe ser perpendicular al plano. En ese caso, el plano debe tener un vector normal con coordenadas $(20,0,-20)$ . Si quieres el vector normal unitario, multiplica las coordenadas de $(20,0,-20)$ por $\frac{1}{\sqrt{20^2 + 0^2 + 20^2}},$ por lo que el resultado es $\left(\frac{1}{\sqrt2},0,-\frac{1}{\sqrt2}\right).$

La ecuación de un plano que pasa por el punto $(20,0,-20)$ con vector normal unitario $\left(\frac{1}{\sqrt2},0,-\frac{1}{\sqrt2}\right)$ es $\frac{1}{\sqrt2}x - \frac{1}{\sqrt2}z = 20\sqrt2.$ En esta ecuación, en el lado izquierdo multiplicamos cada una de las variables $x,$ $y,$ y $z$ por la coordenada correspondiente del vector unitario (el término con $y$ desaparece en este ejemplo porque $0\times y = 0$ ), y encontrar el valor correcto de la constante que hay que poner en el lado derecho introduciendo las coordenadas de un punto del plano, en este caso $(20,0,-20).$

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