Intersección entre esfera y cilindro.

Tengo una esfera y un cilindro.

Tengo el centro y el radio de cada uno de ellos.

la esfera:

radio = r 1

centro = ( X 1 , y 1 , z 1 )

el cilindro:

radio = r 2

altura = h 2

centro = ( X 2 , y 2 , z 2 )

¿Cómo sé si hay una intersección?

Leí este: http://en.wikipedia.org/wiki/Sphere%E2%80%93cylinder_intersection

pero mi centro no es ( X 1 , 0 , 0 ) pero ( X 1 , y 1 , z 1 ) .

el radio en mi esfera es 1, y el punto central es ( X 1 , y 1 , z 1 )

el radio en mi cilindro es 1, la altura es 10 y el punto central es ( X 2 , y 2 , z 2 ) .

Pensé en convertir mi punto central de ( X 1 , y 1 , z 1 ) en ( X 1 , 0 , 0 ) y luego saber si hay cruce o no, según la referencia que vinculé..

cualquier ayuda apreciada!

Respuestas (1)

Puedes trasladar los puntos para poner el centro de la esfera en el origen haciendo que el centro de la esfera ( 0 , 0 , 0 ) y el centro del cilindro ( X 2 X 1 , y 2 y 1 , z 2 z 1 ) Esta es una traducción del espacio. Si desea sus resultados en el sistema de coordenadas original, simplemente agregue ( X 1 , y 1 , z 1 ) a ellos

gracias, pero si cambio el centro de la esfera de (x1,y1,z1) a (x1,0,0) y luego el centro del cilindro se convertirá en (x2,y2-y1,z2-z1), ¿Cómo me ayuda esto? el punto x de la esfera sigue siendo x1, así que si hago: x+R<r antes y después de la traducción, obtendré lo mismo... ¿puede mostrarme un ejemplo, por favor? radio_esfera=1. center_sphere=(3,-5,9). cilindro_radio=1. centro_cilindro=(-5,-7,2), altura=10. por favor muéstrame cómo encontrar si hay una intersección o no. ¡gracias!
El artículo prevé X 1 / norte mi X 2 , la diferencia es a . Se supone que el cilindro está a lo largo z , por lo que las ubicaciones en esa dirección no importan, y alinea el desplazamiento entre el centro de la esfera y el eje del cilindro para que esté a lo largo del X eje. También supone que el cilindro es infinitamente largo. Para tu caso, a = ( 3 ( 5 ) ) 2 + ( 5 ( 7 ) ) 2 = 68 . Como eso es mayor que la suma de los radios, no hay intersección.