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
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;