Jump to content


Photo

Problema con la función RayCastIntersect

Delphi 3D FireMonkey Games

  • Please log in to reply
21 replies to this topic

#21 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 posts
  • LocationCali, Colombia

Posted 15 July 2016 - 03:21 PM

Aún no estoy seguro que sea error de FireMonkey, probablemente sea que estoy utilizando mal las funciones,  la verdad soy nuevo en esto del 3D y me cuesta un poco de trabajo saber cuando utilizar AbsoluteToLocal3D, AbsoluteToLocalVector, AbsoluteToLocalDirection, y otro tanto de funciones.  Sin embargo estaré en esa tarea hasta que termine el proyecto en el cual estoy enfocado, así que si es posible les estaré comentando lo que vaya aprendiendo.


  • 0

#22 zealot2

zealot2

    Newbie

  • Miembros
  • Pip
  • 5 posts

Posted 21 February 2022 - 12:45 PM

 

Hola amigos.

 

Estoy haciendo una aplicación donde requiero conocer el punto de colisión de una esfera con otro objeto.  hasta allí es sencillo.

 

Dada una posición inicial y la dirección del objeto se puede obtener el punto de colisión con la instrucción RayCastInteserct,  el primer paso es cambiar la referencias de coordenadas de las globales, hacia el local.

 

Todo esto funciona perfectamente, incluso si el objeto de destino tiene rotaciones,  sin embargo si el objeto de destino tiene una traslación, los cálculos ya no dan.

 

El ejemplo con la Objeto.position.Point := Point3D(0,1,0);  ya no lo puede detectar.

 

Alguna idea?  Gracias.


php
  1. Position := Objeto.AbsoluteToLocal3D(Position);
  2. FDir := Vector3D(Objeto.AbsoluteToLocalVector(FDir));
  3.  
  4. Objeto.RayCastIntersect(Position, FDir, HitPos);
  5.  
  6. Sphere1.Position.Point :=
  7. Objeto.LocalToAbsolute3D(Objeto.AbsoluteToLocal3D(HitPos));

Quisiera saber, si con RayCastIntersect, o alguna otra cosa puedo detectar el choque de un Circle con una Rect. Tengo un proyecto donde necesito eso y he tenido que escribir como un loco a mano, verificando todo el tiempo las coordenadas. Se puede hacer mas simple con ese metodo o algo parecido?


  • 0





Also tagged with one or more of these keywords: Delphi, 3D, FireMonkey, Games

IP.Board spam blocked by CleanTalk.