1 votos

cómo mover un punto fuera de una esfera a lo largo de una línea

Que las coordenadas de una esfera con centro C y su radio r se dará. También un punto P que hay que desplazar fuera de la esfera (es decir, a su superficie), si el punto está dentro de la esfera. P debe moverse en la dirección de CP = P - C .

Creo que este enfoque es erróneo: P_new = C + (r * CP) . La distancia entre P_new y C tiene que ser r . Multiplicando r al vector de dirección CP , sólo el eje x,y,z se escalará, pero la diagonal diagonal entre C y P no será r .

sphere

¿Cómo traslado P_old a lo largo de la línea CP a P_new ?

2voto

araomis Puntos 58

Puedes pensarlo de esta manera: La línea sobre la que puedes mover tu punto puede describirse así $l: P(s) = P_{old} + s \cdot (C - P_{old})$ . Cada punto de la esfera debe satisfacer $ |P - C| = r$ . Ahora puedes combinar esas dos ecuaciones: Tu objetivo ahora es encontrar $s$ tal que $|P(s) - C| = r$ . $$ |P(s) - C| = |P_{old} + s \cdot (C - P_{old}) - C| = |(P_{old} - C) - s \cdot(P_{old} - C)|$$ $$ = |(1 - s)(P_{old} - C)| = |1-s||P_{old} - C| \stackrel{!}{=} r$$

Así se puede calcular $s$ utilizando la siguiente ecuación: $$|s - 1| = r \div |P_{old} - C|$$

Sabes que $r, P_{old}, C$ . Así que puedes calcular un valor para el lado derecho y elevar ambos lados al cuadrado para obtener una ecuación cuadrática para $s$ que debería darte $2$ respuestas. (Porque hay dos soluciones a tu problema). Una vez que tenga una solución $s'$ puede utilizarlo para calcular $P_{new} = P_{old} + s' (P_{old} - C)$ .

2voto

Vincent Puntos 5027

El nuevo punto es $$C+\frac{r\cdot CP}{|CP|}$$

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