Saltar al contenido

¿Cómo forrar esfera?

abril 4, 2022

Parametrización de la esfera

Además, las precomputaciones cuentan en este algoritmo. Es decir, el conjunto cambia con el tiempo, pero cambia con menos frecuencia de la que necesito este resultado para diferentes segmentos de línea. ¿Tal vez 5 consultas a cada cambio de conjunto? Ese es el peor caso.

Para cada uno de los N puntos, encontrar qué parte de la línea está más cerca de X a ese punto. Esto es, como mucho, un único segmento. Encuentra su unión C como una unión disjunta de segmentos. Esto es probablemente más fácil si los ordenas por su punto de partida, y el algoritmo obvio te da la unión como una lista ordenada también – lo que hace que la última parte sea trivial: Encontrar el complemento de C.

Si el aspecto de la consulta es importante para ti (es decir, las líneas siguen apareciendo), entonces realmente deberías construir una estructura de datos en los discos. Esto es lo que tienes que hacer. Necesitas construir el arreglo en discos de radio X centrados en cada punto (el arreglo es la forma en que la esfera se descompone en parches por los límites de los discos). Luego, una consulta de localización de puntos para cada punto final localiza las celdas de inicio y final, y al recorrer el arreglo a lo largo de la línea se obtiene el subconjunto de la línea no cubierto por los discos.

Intersección línea-esfera python

Gracias por la respuesta. Lo he intentado resolviendo para “l” usando la función solve, pero desgraciadamente, obtengo como resultado un doble complejo de 11×11 (cuando uso los valores que tengo para x, y, z, etc.), que no se puede trazar.¿Hay algo que se me escapa?

sol = solve((Pm1+(l*normal1) – xs)^2 + (Pm2+(l*normal2) – ys)^2 + (Pm3+(l*normal3) – zs)^2 == R^2,l)Y si Pm1, Pm2, Pm3, normal1, normal2, normal3, xs, ys, zs son escalares, no sé por qué se obtiene un resultado de matriz 11×11.

xs, ys y zs no son escalares. La función sphere(10) devuelve tres dobles de 11×11 para “simular” la superficie de la esfera.Probablemente ahí esté el problema; sin embargo, no estoy seguro de cómo pasar de las matrices xs, ys, zs a vectores de coordenadas ordinarios que representen cada punto de la superficie.

Ah, pensé que (xs,ys,zs) es el centro de la esfera. Tienes que solvesol = solve((Pm1+(l*normal1) – xc)^2 + (Pm2+(l*normal2) – yc)^2 + (Pm3+(l*normal3) – zc)^2 == R^2,l)donde (xc,yc,zc) es el centro de la esfera.

Volumen de intersección de la esfera

donde C es el centro de la esfera, A es el centro del círculo pequeño, y B es un punto en el límite del círculo pequeño. Por lo tanto, conociendo el radio de la esfera, y la distancia del plano del círculo pequeño a C, se puede determinar el radio del círculo pequeño utilizando el teorema de Pitágoras.

Un círculo de una esfera es un círculo que se encuentra en una esfera. Dicho círculo puede formarse como la intersección de una esfera y un plano, o de dos esferas. Un círculo sobre una esfera cuyo plano pasa por el centro de la esfera se llama gran círculo; en caso contrario, es un círculo pequeño. Los círculos de una esfera tienen un radio menor o igual al de la esfera, con igualdad cuando el círculo es un gran círculo.

En el sistema de coordenadas geográficas de un globo terráqueo, los paralelos de latitud son círculos pequeños, siendo el Ecuador el único gran círculo. En cambio, todos los meridianos de longitud, emparejados con su meridiano opuesto en el otro hemisferio, forman grandes círculos.

El diámetro de la esfera que pasa por el centro del círculo se llama eje y los puntos extremos de este diámetro se llaman polos. Un círculo de una esfera también puede definirse como el conjunto de puntos situados a una distancia angular determinada de un polo dado.

Esfera de volumen

Vale, he buscado esto por todas partes. Necesito proyectar una línea sobre una esfera. Sé cómo proyectar puntos sobre la esfera, pero no consigo averiguar cómo proyectar una línea. Mi idea inicial era simplemente proyectar un punto que sabía que estaba en la línea (P) y proyectarlo sobre la esfera, manteniendo el vector de dirección de la línea anterior para usarlo como vector de dirección de la nueva. Sin embargo, me di cuenta de que esto sólo produciría una tangente (o casi) a la esfera en el punto P. A continuación, pensé que proyectar dos puntos sobre la esfera que sabía que se encontraban en la línea funcionaría. Podría proyectar P1 y P2 y luego utilizarlos para obtener la ecuación de la recta. Esto es lo que me han recomendado en otros sitios, independientemente, pero pensando en esto, ¿la línea generada no cortará simplemente la esfera en esos dos puntos y no seguirá la curvatura de la esfera?

En primer lugar, no está muy claro lo que quieres. ¿Qué quieres decir con línea sobre la esfera? ¿Gran círculo? El gran círculo se encuentra en el plano con normal = punto1 cruz punto2 (asumiendo que la esfera está en el origen; de lo contrario, restar el centro de la esfera de los puntos primero). Donde el punto1 y el punto2 pueden ser puntos en la línea, o punto y dirección de la línea. Y los puntos del gran círculo satisfacen las ecuaciones x^2+y^2+z^2=r^2 y x*normal_x+y*normal_y+z*normal_z=0 .

Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad