3 votos

Líneas que pasan por un cubo

Tengo que hacer un programa en el que tengo un cubo (centrado en el origen) y líneas aleatorias que pasan por el cubo. No sé qué condición puede ser suficiente que me asegure que las líneas van a pasar por ahí.

2 votos

Parece que no tienes ningún requisito sobre la distribución de las líneas, así que un enfoque simple puede ser suficiente: Elige dos puntos al azar dentro del cubo y elige la línea que pasa por ellos.

0 votos

Ni idea de lo que quería decir, lo siento

3voto

Jean-Claude Arbaut Puntos 9403

Supongo que ya te han dado una línea y quieres saber si pasa por el cubo. No está del todo claro en tu pregunta si esto realmente se ajusta a tus necesidades.

También asumo que la línea está parametrizada por un punto $A$ y un vector $\vec u$ . Es decir, un punto $M$ de la línea satisface $M=A+\lambda \vec u$ para algún número real $\lambda$ .

Es relativamente fácil determinar los puntos de la recta que están en un lado de un plano dado. Esto nos dará un intervalo (posiblemente infinito) para $\lambda$ .

Por ejemplo, los puntos sobre o en el plano $z=0$ corresponden a los valores de $\lambda$ para lo cual $z_A+\lambda z_u\geq0$ .

  • Si $z_u=0$ el intervalo está vacío si $z_A<0$ y $]-\infty,+\infty[$ si $z_A\geq0$ .
  • Si $z_u>0$ el intervalo es $[-\frac{z_A}{z_u},+\infty[$ .
  • Si $z_u<0$ el intervalo es $]-\infty,-\frac{z_A}{z_u}]$ .

Para un avión $z=z_0$ las condiciones sólo se modifican ligeramente, y para los aviones $x=x_0$ y $y=y_0$ es trivial adaptar las fórmulas.

Ahora, si haces eso con los seis planos que se forman con las caras del cubo, obtienes seis intervalos. La recta pasa por el cubo si su intersección no es vacía. Como la intersección de dos intervalos sigue siendo un intervalo, debería ser fácil de tratar.

Supongo que esto sería fácil de resolver para cualquier cubo con lados paralelos a los ejes de coordenadas. Y como ventaja, puedes describir todos los puntos que se encuentran dentro del cubo.


Sin embargo, si quiere generar líneas aleatorias que atraviesan el cubo, esto es probablemente inútil para usted. Y te encontrarás con un problema similar al de La paradoja de Bertrand La forma de elegir las líneas aleatorias dará lugar a diferentes distribuciones de probabilidad. Tal vez quieras considerar primero (y tal vez decirnos si quieres alguna ayuda útil) lo que quieres hacer con estas líneas aleatorias.

0 votos

En realidad esto me ayudó en el camino para resolver mi problema haciendo algunos twerks. Hice una línea vertical en el origen en la que cambié posteriormente las pendientes y luego, trasladé el punto en (0,0,0) a cualquier lugar dentro del cubo.

0voto

Mason Puntos 18

Elige un punto al azar en el cubo y asegúrate de que tu línea pasa por ese punto.

$$(x,y,z) = (x_0,y_0,z_0) + t(a,b,c)$$

$(x_0,y_0,z_0)$ es el punto del cubo, y $(a,b,c)$ es la dirección del vector/línea. Esto funciona para $\forall a,b,c \in \mathbb{R}^3$

0voto

Steve Kass Puntos 5967

[Nota: Como señaló Jean-Claude en un comentario, esto era incorrecto. Ahora está incompleto, pero quizás se pueda salvar].

Aquí hay una sugerencia que a menudo, pero no siempre, responde a la pregunta de si una línea dada pasa por el cubo. (Nunca da una respuesta errónea, pero a veces no responde a la pregunta).

Supongamos que la longitud lateral del cubo centrado en el origen es $2s$ , por lo que el cubo se extiende $s$ unidades desde el origen en tres direcciones perpendiculares.

Obsérvese en primer lugar que la esfera centrada en el origen de radio $s$ se encuentra enteramente dentro del cubo, y el cubo se encuentra enteramente dentro de la esfera centrada en el origen de radio $s\sqrt{3}$ . Estas observaciones justifican los puntos 2. y 3. siguientes.

  1. Encontrar la distancia $d$ de la línea al origen. (Véase aquí para una forma de hacerlo).

  2. Si $d\le s$ la línea pasa por el cubo.

  3. Si $d>s\sqrt{3}$ la línea no pasa por el cubo.

  4. Si $s<d\le s\sqrt3$ Para determinar si la línea pasa a través del cubo, hay que adoptar otro enfoque. [En mi respuesta original, dije que la línea pasaba por el cubo si y sólo si el punto de la línea más cercano al origen estaba dentro del cubo, pero eso era incorrecto].

0 votos

El 4. no parece verdadero. Tomemos, por ejemplo, una línea que pasa por un vértice del cubo, y que es casi paralela a una cara adyacente, quedando ligeramente fuera del cubo, y pasando cerca del centro de la cara. El punto más cercano al origen está necesariamente fuera del cubo (está en la línea, cerca del centro de la cara), y sin embargo la línea pasa por el cubo. Sólo tienes que mover la línea un poco dentro del cubo (cerca del vértice) si quieres que la línea intersecte el cubo en más de un punto.

0 votos

Buena captura. Dejaré la respuesta, pero señalaré que es incorrecta, ya que quizás todavía hay alguna forma correcta y eficiente de manejar el caso intermedio.

0voto

Andrei Puntos 111

Supongamos que su cubo de lado $2a$ está centrado en el origen ( $\vec O$ ). La ecuación de la línea es $\vec {P_1}+\vec{v}t$ con $|\vec v|=1$ . La longitud de la proyección de $OP_1$ en la línea viene dada por $(\vec O-\vec{P_1})\cdot \vec v$ por lo que el punto más cercano de la línea al centro del cubo viene dado por $\vec P=\vec{P_1}-(\vec P_1\cdot \vec v)\vec v$ . Si la línea interseca el cubo las tres componentes de $\vec P$ están entre $-a$ y $a$ .

0 votos

Como señaló Jean-Claude en un comentario a mi respuesta, es posible que la línea intersecte al cubo, a pesar de que el punto más cercano (su $P$ ) en la línea hacia el centro del cubo se encuentra fuera del cubo. (Además, el post original no especifica que las caras del cubo sean paralelas a los ejes de coordenadas).

0 votos

Gracias @SteveKass. No me había dado cuenta del comentario

0voto

CodingBytes Puntos 102

Dejemos que $C:=[{-a},a]^3$ sea el cubo, y supongamos que la línea $\ell$ viene dada por una parametrización de la forma $$t\mapsto x_i(t)=p_i+ u_i t\qquad(1\leq i\leq 3)\ .$$ Tras una adecuada reflexión de $\ell$ podemos suponer $u_i\geq0$ $(1\leq i\leq 3)$ . Las condiciones $$x_i(t)=-a, \quad{\rm resp.,}\quad x_i(t)=a\qquad(1\leq i\leq3)$$ determinar tres $t$ -intervalos $[t_i',t_i'']$ . Si $$\max\{t_1',t_2',t_3'\}\leq\min\{t_1'',t_2'',t_3''\}$$ entonces $\ell$ golpea el cubo.

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