45 votos

¿Ecuación paramétrica de un círculo en el espacio 3D?

Entonces, mi dilema es... Tengo un eje. Este eje se me da en el formato de la pendiente del eje en los ejes x,y y z.

Necesito elaborar una ecuación paramétrica de una circunferencia. Este círculo necesita tener un eje de rotación en el eje dado con un radio variable.

Llevo días trabajando en este problema y aún no he dado con la solución.

Estoy utilizando este círculo para trazar la trayectoria de un satélite, programado en C.

Y la ayuda sería muy apreciada.

Gracias.

4 votos

Si se trata de cartografiar la trayectoria de un satélite, generalmente se mueven en una trayectoria elipsoidal.

53voto

user3035 Puntos 91

Dejemos que $(a_1,a_2,a_3)$ y $(b_1,b_2,b_3)$ sean dos vectores unitarios perpendiculares a la dirección del eje y entre sí, y sea $(c_1,c_2,c_3)$ sea cualquier punto del eje. (Si ${\bf v} = (v_1,v_2,v_3)$ es un vector unitario en la dirección del eje, puede elegir ${\bf a} = (a_1,a_2,a_3)$ resolviendo ${\bf a} \cdot {\bf v} = 0$ , escalando ${\bf a}$ para hacer $\|{\bf a}\| = 1$ , dejando entonces que ${\bf b} = {\bf a} \times {\bf v}$ .)

Entonces, para cualquier $r$ y $\theta$ el punto $(c_1,c_2,c_3) + r\cos(\theta)(a_1,a_2,a_3) + r\sin(\theta)(b_1,b_2,b_3)$ estará a la distancia $r$ de $(c_1,c_2,c_3)$ y como $\theta$ va de $0$ a $2\pi$ los puntos de distancia $r$ de $(c_1,c_2,c_3)$ en el plano que contiene $(c_1,c_2,c_3)$ perpendicular al eje será trazado.

Así, la parametrización del círculo de radio $r$ alrededor del eje, centrado en $(c_1,c_2,c_3)$ viene dada por $$x(\theta) = c_1 + r\cos(\theta)a_1 + r\sin(\theta)b_1$$ $$y(\theta) = c_2 + r\cos(\theta)a_2 + r\sin(\theta)b_2$$ $$z(\theta) = c_3 + r\cos(\theta)a_3 + r\sin(\theta)b_3$$

1 votos

Simple e intuitivo. Sólo hay que establecer los vectores a y b como si se tratara de un eje x e y bidimensional, y luego hacer las ecuaciones normales del círculo.

1 votos

¿alguna pista sobre cómo escribir una ecuación similar para la elipse?

7 votos

Si sustituye el $r\cos \theta$ por ${r \over c} \cos \theta$ y sustituir el $r\sin\theta$ por ${r \over d} \sin \theta$ y se obtiene una elipse correspondiente con ejes de longitud $c$ en el $(a_1,a_2,a_3)$ dirección y longitud $d$ en el $(b_1,b_2,b_3)$ dirección.

12voto

cbowns Puntos 1960

Creo que una forma fácil de visualizar esto es verlo como un montón de matrices de transformación.

Un círculo es sólo $SRx$ donde

$x = \left[\matrix{1\\0\\0}\right],$

$S = rI$ es una matriz de escala, y

$R = \left[\matrix{\cos\theta & \sin\theta & 0 \\ \sin\theta & -\cos\theta & 0 \\ 0 & 0 & 1}\right]$

es una matriz de rotación:

Ahora, quieres rotar todo ese círculo en alguna dirección arbitraria en tres dimensiones, así que necesitamos una matriz de rotación tridimensional $T$ y necesitamos un vector de traslación $k$ . Un círculo es entonces:

$TSRx + k.$

2voto

Shabaz Puntos 403

¿Es su "pendiente del eje en los ejes x,y y z" la cosenos de dirección ? Necesitas un centro $c$ también, presumiblemente un punto en el eje. Dado el vector unitario $\vec{v}$ a lo largo del eje una forma es encontrar dos vectores unitarios perpendiculares. Mientras $\vec{v}$ no es a lo largo de la $x$ se puede normalizar $\vec{v} \times (1,0,0)$ para uno y llamarlo $\vec{a}$ , entonces dejemos que $\vec{b}=\vec{v} \times \vec{a}$ . Entonces, su ubicación por satélite es $c+R\cos\omega t\vec{a}+R\sin \omega t\vec{b}$

2voto

Andrew Puntos 140

Para esta respuesta, hago algunas suposiciones (no demasiado drásticas):

  1. La circunferencia que te interesa está centrada en el origen (por tanto, el plano en el que se encuentra tu circunferencia tiene que pasar por el origen).

  2. El plano en el que se encuentra su círculo ya está en Forma normal hessiana , $\mathbf{\hat n}\cdot\langle x\;y\;z\rangle=0$ , donde $\mathbf{\hat n}$ es un unidad vector normal a su plano.

  3. El plano no es ninguno de los planos de coordenadas (y en esos casos, no sería necesario pasar por esta vía).

Lo que puedes utilizar para derivar las ecuaciones paramétricas de tu círculo es el Fórmula de rotación de Rodrigues que es una matriz de rotación utilizada para girar un ángulo $\varphi$ en torno a un eje arbitrario $\mathbf{\hat n}=\langle n_x\;n_y\;n_z\rangle$ . Dejar

$$\mathbf W=\begin{pmatrix}0&-n_z&n_y\\n_z&0&-n_x\\-n_y&n_x&0\end{pmatrix}$$

la matriz de rotación de Rodrigues es

$$\mathbf R(\varphi)=\mathbf I+\sin\,\varphi\mathbf W+2\sin^2\frac{\varphi}{2}\mathbf W^2$$

Por lo tanto, para ensamblar las ecuaciones paramétricas de tu círculo: elige cualquier punto de tu plano cuya distancia al origen sea igual al radio de tu círculo, y luego aplica la fórmula de rotación de Rodrigues a ese punto. El eje a utilizar es el vector normal unitario en la forma normal hessiana de tu plano, y el ángulo de rotación es el parámetro variable en tus ecuaciones paramétricas. Es decir, si $\mathbf p$ es un punto a una distancia $r$ desde el origen, y satisface $\mathbf{\hat n}\cdot\mathbf p=0$ entonces $\mathbf r(t)=\mathbf R(t)\cdot\mathbf p$ es la ecuación vectorial de su círculo.

-2voto

Si tu círculo tiene un vector normal unitario < cos(a), cos(b), cos(c)> entonces dependiendo de c, tienes:

< cos(t-arcsin(cos(b)/sin(c)))/sqrt(sin(t)^2 +cos(t)^2*sec(c)^2), sin(t-arcsin(cos(b)/sin(c)))/sqrt(sin(t)^2 +cos(t)^2*sec(c)^2), cos(t)*sin(c)/sqrt(cos(t)^2+sin(t)^2*cos(c)^2> 0

< sin(t)*sin(a), -sin(t)*cos(a), cos(t)> cos(c)=0

y por supuesto, < cos(t), sin(t), 0> sin(c)=0

Los dos primeros tendrán t=0 como punto máximo

2 votos

¡Bienvenido a math.SE! Tenga en cuenta que puede utilizar LaTeX para que las ecuaciones sean más legibles

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