Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

Как перевести координаты окна в координаты OpenGL?   Найти похожие ветки 

 
PaRL   (2002-12-06 20:51) [0]

Есть ли универсальная формула?
Желательно для gluPerspuctive, но glFrustum тоже подойдет.


 
Ketmar   (2002-12-07 16:25) [1]

а что есть "координаты OpenGL"???

Satanas Nobiscum! 07-Dec-XXXVII A.S.


 
PaRL   (2002-12-08 13:40) [2]

ну как... в центре окна, то есть (ClientWidth/2, CientHeight/2) координата 0, то есть glVertex2f(0, 0) выводит на экран точку в центре окна.
Вопрос как перевести (X, Y) при движении мыши в координаты GL... ?

А это зависит от перспективы и матрицы, которые задаются командами glFrustum и glPerspuctive, вот я и спросил...


 
Ketmar   (2002-12-08 17:11) [3]

положим вовсе и не всегда в центре. как напишете. а вы, видимо, хотите услышать волшебное слово gluUnproject? я угадал?

Satanas Nobiscum! 08-Dec-XXXVII A.S.


 
PaRL   (2002-12-08 20:22) [4]

Точно. Угадал :)
Спасибо.


 
Ketmar   (2002-12-09 10:57) [5]

>PaRL © (08.12.02 20:22)
без проблем. заходите еще. только спрашивайте точнее в следующий раз %-)

Satanas Nobiscum! 09-Dec-XXXVII A.S.


 
klovetski   (2002-12-11 00:06) [6]

Вот Вам кусочек из работающей программки

procedure TfrmCollision.pnlCollisionMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Viewport : Array [0..3] of GLInt;
mvMatrix, ProjMatrix : Array [0..15] of GLDouble;
RealY : GLint ; // позиция OpenGL y - координаты
wx, wy, wz : GLdouble ; // возвращаемые мировые x, y, z координаты
Zval : GLfloat;
xVelocity,
yVelocity : real;


begin
glGetIntegerv (GL_VIEWPORT, @Viewport);
glGetDoublev (GL_MODELVIEW_MATRIX, @mvMatrix);
glGetDoublev (GL_PROJECTION_MATRIX, @ProjMatrix);
// viewport[3] - высота окна в пикселях
RealY := viewport[3] - Y - 1;
glReadPixels(X, RealY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, @Zval);

gluUnProject (X, RealY, Zval, @mvMatrix, @ProjMatrix, @Viewport, wx, wy, wz);

end;



Страницы: 1 вся ветка

Текущий архив: 2003.05.19;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.007 c
3-59612
WD
2003-04-28 17:21
2003.05.19
Local database


1-59763
ЧР
2003-05-06 15:51
2003.05.19
не мог сделать Undo и Redo


3-59544
alexgov
2003-04-25 16:53
2003.05.19
Отсоединеный набор в ADO


9-59531
Axis_of_Evil
2002-12-09 09:27
2003.05.19
Вопросы к местному гоблинарию


14-59939
asusfi
2003-04-30 14:47
2003.05.19
Акт выполненых работ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский