elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Problema con vectores 3d
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con vectores 3d  (Leído 3,985 veces)
ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Problema con vectores 3d
« en: 7 Marzo 2011, 20:52 pm »

Bueno, no es exáctamente un problema de programación, es en realidad de matemática. No era nada fácil explicar el problema, por eso he hecho un esquema de mi duda.


Conozco el vector A y el vector B, así como el radio de la circunferencia, el punto c está es la intersección entre la línea A-B-infinito y la circunferencia. Lo más adecuado sería hayar la rotación (en cuaternión) necesaria en el punto B para que éste quede mirando hasta el punto C, pero me bastaría con hayar el punto C (me parece que es más simple). La verdad es que no se por donde empezar, tampoco pido que me resuelvan el problema, me bastaría con algo de información sobre las fórmulas que debo usar para hayarlo.


En línea

ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: Problema con vectores 3d
« Respuesta #1 en: 7 Marzo 2011, 21:54 pm »

Recorde algo de las clases de geometria analitica :)

Se tiene los puntos:

A=(a1,a2,a3); B=(b1,b2,b3); C=(x,y,z); y el radio 'r' de la esfera

Luego por las condiciones dadas de cumplira:


1. (x-b1)^2 + (y-b2)^2 + (z-b3)^2 = r^2   (Ecuación de la esfera)

2. C = A+t*(B-A); para algún t                     (Ecuación vectorial de la recta)


Sustituyendo el valor de C=(x,y,z) en la ecuación 2 se tiene:

(x,y,z) = (a1,a2,a3)+t*(b1-a1,b2-a2,b3-a3)

(x,y,z) = (a1+t*(b1-a1),a2+t*(b2-a2),a3+t*(b3-a3))

<==>

3.          x = a1+t*(b1-a1)
             y = a2+t*(b2-a2)
             z = a3+t*(b3-a3)

Reemplazando en 1 y simplificando se obtiene:

(t-1)^2*((b1-a1)^2+(b2-a2)^2+(b3-a3)^2) = r^2

Despejando t:

t=1+sqrt((r^2)/((b1-a1)^2+(b2-a2)^2+(b3-a3)^2))

Se sustituye este valor en las ecuaciones 3 y se obtine el valor para C=(x,y,z)  ;D



« Última modificación: 8 Marzo 2011, 00:39 am por BeetleJuice » En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Problema con vectores 3d
« Respuesta #2 en: 7 Marzo 2011, 22:48 pm »

Gracias, interesante. Lo único que no me ha quedado totalmente claro es de dónde sale la t. ¿que significa? gracias de nuevo.
En línea

ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: Problema con vectores 3d
« Respuesta #3 en: 8 Marzo 2011, 00:17 am »

Ahi va la explicación, aunque seguramente estará mejor explicado en los libros  :P
Citar
Dos puntos distintos definen una recta. La recta que pasa por los puntos A=(a1,a2,a3) y B=(b1,b2,b3) estará conformada por los puntos P=(x,y,z) tales que:

P = A+t*(B-A); para t que pertenece a los reales (Ecuación vectorial de la recta)

Donde:
A, B y B-A son vectores (ternas) y la t es un escalar, un número real.

En esa fórmula  '+' y  '-' denotan operaciones con vectores y '*' es una operación entre un número real y un vector...

La anterior fórmula puede ser vista como una forma abreviada de escribir las siguientes ecuaciones:

    x = a1 + t*(b1-a1)
    y = a2 + t*(b2-a2)
    z = a3 + t*(b3-a3); para t que pertenece a los reales

Este grupo de ecuacíones determina la recta que pasa por los puntos A y B porque para distintos valores de t nos devolvera los puntos de la recta. Por ejemplo, para:

t=0; P=(x,y,z)=(a1,a2,a3)                            (el punto A)
t=1; P=(x,y,z)=(b1,b2,b3)                            (el punto B)
t=1/2; p=((a1+a2)/2,(b1+b2)/2,(a3+b3)/2)   (el punto medio entre A y B)

En el problema que planteaste, si C=(c1,c2,c3) es un punto de la recta que pasa por los puntos A y B entonces existe un 't' tal que se cumplira:  

c1 = a1 + t*(b1-a1)
c2 = a2 + t*(b2-a2)
c3 = a3 + t*(b3-a3)

etc, etc

Lo demás creo que ya esta entendido ;)

Saludos.
« Última modificación: 8 Marzo 2011, 00:44 am por BeetleJuice » En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Problema con vectores 3d
« Respuesta #4 en: 8 Marzo 2011, 12:25 pm »

Vale, vale, perfecto, es justo lo que necesitaba.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al imprimir 2 vectores, con 2 bucles « 1 2 »
Java
Dem0ny 10 7,377 Último mensaje 10 Marzo 2009, 17:10 pm
por Amerikano|Cls
Problema vectores
Java
kaly 2 2,971 Último mensaje 11 Febrero 2009, 14:12 pm
por kaly
Problema con vectores en C [SOLUCIONADO]
Programación C/C++
;c1v!c 5 4,143 Último mensaje 19 Enero 2012, 18:40 pm
por ;c1v!c
problema vectores, allegro. « 1 2 3 »
Programación C/C++
MasterPunk 20 9,134 Último mensaje 14 Enero 2012, 02:32 am
por SirLanceCC
problema con vectores
Programación C/C++
flony 2 1,714 Último mensaje 5 Noviembre 2012, 02:32 am
por flony
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines