Курсовая работа: Управление элементами поверхности
Form1: TForm1;
DC:HDC;
HRC:HGLRC;
Human: User;
MyTextureTex: glUint;
wx, wy, wz: GLdouble; // возвращаемые мировые x, у, z координаты
height:array [-11..11, -11..11] of single;
implementation
procedure glBindTexture (target: GLenum; texture: GLuint); stdcall; external opengl32;
{$R *.dfm}
procedure GetCoordinate (const x, y:integer);
var
Viewport: Array [0..3] of GLInt; // область вывода
mvMatrix, // матрица модели
ProjMatrix: Array [0..15] of GLDouble; // матрица проекций
RealY: GLint; // OpenGL у – координата
Zval: GLfloat; // оконная z – координата
Begin
glGetIntegerv (GL_VIEWPORT, @Viewport); // матрица области вывода
// заполняем массивы матриц
glGetDoublev (GL_MODELVIEW_MATRIX, @mvMatrix);
glGetDoublev (GL_PROJECTION_MATRIX, @ProjMatrix); // viewport[3] – высота окна в пикселах, соответствует Height
RealY:= viewport[3] – Y – 1;
FloatToStr (RealY);
glReadPixels (X, RealY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, @Zval);
gluUnProject (X, RealY, Zval,
@mvMatrix, @ProjMatrix, @Viewport, wx, wy, wz);
end;
procedure initmas;