游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1345|回复: 1

opengl关于屏幕选取的问题

[复制链接]

6

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-2-25 10:58:00 | 显示全部楼层 |阅读模式
我在屏幕上用鼠标在屏幕上选取了一个点,然后用gluUnProject函数得到两个最近和最远点的世界坐标,如下:
// 取近裁剪面交点
gluUnProject( (GLdouble) mouse_x, (GLdouble) mouse_y, 0.0,
        modelview, projection, viewport,
        &near_world_x, &near_world_y, &near_world_z);
// 取远裁剪面交点
gluUnProject( (GLdouble) mouse_x, (GLdouble) mouse_y, 1.0,
        modelview, projection, viewport,
        &far_world_x, &far_world_y, &far_world_z);

然后我希望在这两点之间画一条线:
//画所选取的点的直线
glBegin(GL_LINES);
glVertex3f(near_world_x, near_world_y, near_world_z);
glVertex3f(far_world_x,far_world_y, far_world_z);
glEnd();

上面这么画直线好像是不对的,gluUnProject函数取到的点是世界坐标,而glVertex3f函数画的是局部坐标,那我应该怎么转换,把(near_world_x, near_world_y, near_world_z)和(far_world_x,far_world_y, far_world_z)两点转成局部坐标画出来?谢谢

6

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2006-2-27 15:35:00 | 显示全部楼层

Re:opengl关于屏幕选取的问题

如果你是用Win32 Console Application来建立工程来写的程序的话,这种方法应该是对的,你可以参考《OpenGL编程指南》这本书中的例子。
如果你是用MFC来建立工程的话,这个函数就好像没有用了,需要自己编写坐标的转换程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 17:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表