Tengo una normalizado $3D$ vector de darle una dirección y un ángulo que se forma un cono alrededor de ella, algo como esto:
Me gustaría generar un aleatorios uniformemente distribuidos vector normalizado para una dirección dentro de ese cono. También me gustaría apoyar a ángulos mayores de pi (pero inferior o igual a $2\pi$), momento en el que la forma se vuelve más como una esfera de la que una de cono se ha quitado. ¿Cómo puedo proceder?
Pensé acerca de los siguientes pasos, pero mi aplicación no parece funcionar:
- Encontrar un vector normal al eje del cono vector (cruzando el eje del cono de vector con el eje cardinal que corresponde con el eje del cono vector componente más cercano a cero, por ejemplo: $[1 0 0]$$[-1 5 -10]$)
- Encontrar un segundo vector normal el uso de un producto cruzado
- Generar un azar ángulo entre el $[-\pi, \pi]$
- Gire el uso de los dos vectores normales como $2D$ sistema de coordenadas para crear un nuevo vector en el ángulo generado previamente
- Generar al azar un valor de desplazamiento entre el $[0, \tan(\theta)]$ y raíz cuadrada (para normalizar la distribución como para los puntos dentro de un círculo)
- Normalizar la suma del eje del cono de vector con el azar vector normal veces el valor de desplazamiento para llegar a la final vector de dirección
[editar] Después de pensar, no estoy seguro de que el método de trabajo con theta ángulos mayores o igual a pi. Los métodos alternativos son muy bienvenidas.