Ver Mensaje Individual
  #5  
Antiguo 20-04-2006
blueicaro blueicaro is offline
Miembro
 
Registrado: abr 2005
Ubicación: España
Posts: 44
Reputación: 0
blueicaro Va por buen camino
Lightbulb Probando

Hola he estado probando la función que puso en su respuesta lpmlpm, y acabo de ver como funciona.

He hecho un programita que pinta un recta en un componente TImage, la recta es "paralela al horizonte" ya que el punto de partida es 100,30 y el final 400,30

Como la función del compañero lpmlpm convierte coordenadas 3D en 2D, de partida he puesto 0 en Z, y salió la recta que os comento.

He experimentado con las variables XCen y YCen, y definen el desplazamiento del origen de coordenadas respecto al origen de TImage, que está arriba a la izquierda. Esto no tiene problema

Luego Ratio, lo puse a 1, porque creo que es un "Ratio" osea la relación.

Mi duda viene que luego he ido variando la coordenada Z del punto final de la recta, y si pongo valores positivos la recta pierde en lugar de dibujarse paralela como antes, ahora se representa diagonal hacia arriba si los valores son positivos.

Vamos que no tengo muy claro donde esta punto de vista, osea como está el sistema de coordenadas.

Aquí os dejo lo que he escrito para probar, os dejo la rutina donde se dibuja todo, es fácil reconstruir el resto del programa por si alguien quiere esperimentar, y si alguien lo quiere, que me lo pida.

Saludos
/BlueIcaro
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
Var
 Punto1 ,
 Punto2 : Tpoint;
 Z : integer;
begin
 Xcen := StrToInt (Edit1.Text); // Desplazamiento X
 YCen := StrToInt (Edit2.Text); // Desplazamiento Y
 Z := StrToInt (Edit3.text); // Z del segundo Punto
 Punto1 := Get2DPoint (100,30,0);
 Punto2 := Get2DPoint (400,30,Z);

  Image1.Canvas.MoveTo(Punto1.X,Punto1.Y);
  Image1.Canvas.Lineto(Punto2.x,punto2.y);
end;
Responder Con Cita