OpenGL - przesuwanie...

0

Witam. Mam taki problem... otóż chce zrobić coś takiego jak jest w wielu grach strategicznych.. tzn klikam gdzieś myszką i mój "obiekt" się tam przesuwa (po lini prostej). Normalnie można by to chyba zrobić z równaniem prostej przechodzącej przez dwa punkty ale nie bardzo wiem jak połączyć współrzędne ekranu z tymi z opengl. Męcze sie już z tym dosyć sporo ale doszedłem tylko do jakiś herezji... najlepiej jakby ktoś miał jakiś przykładowy programik....

0

poczytaj o algorytmach szukania najkrotszej drogi do celu przez labirynt.
a samo chodzenie to po prostu przesuwanie po liniach prostych od jednego srodka kwadracika do drugiego
(x:=x+1 itd)

0

współrzędne ekranu na współrzędne ogl'a

type TPoint3D=record
         X,Y,Z:single;
       end

function GetOGLPos(X, Y: Integer): TPoint3D;
var
  viewport:   array [0..3]  of Integer;
  modelview:  array [0..15] of Double;
  projection: array [0..15] of Double;
  winZ: Single;
  Tmp:record
    X,Y,Z:double;
    end;
begin
  glGetDoublev(GL_MODELVIEW_MATRIX,@modelview);
  glGetDoublev(GL_PROJECTION_MATRIX,@projection);
  glGetIntegerv(GL_VIEWPORT,@viewport);
  if(Y=0)then Y:=1;
  glReadPixels(X,viewport[3]-Y,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,@winZ);
  OpenGL.gluUnProject(X,viewport[3]-Y,winZ,@modelview,@projection,@viewport,Tmp.X,Tmp.Y,Tmp.Z);
  result.x:=tmp.x;
  result.y:=tmp.y;
  result.z:=tmp.z;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1