怎样用鼠标选中三维空间中的一个顶点
来源:互联网 发布:海康 知乎 编辑:程序博客网 时间:2021/03/07 19:12
class Point3f;
class LineSegment;
LineSegment GetSelectionRay(int mouse_x, int mouse_y) {
// 获取 Model-View、Projection 矩阵 & 获取Viewport视区
GLdouble modelview[16];
GLdouble projection[16];
GLint viewport[4];
glGetDoublev (GL_MODELVIEW_MATRIX, modelview);
glGetDoublev (GL_PROJECTION_MATRIX, projection);
glGetIntegerv (GL_VIEWPORT, viewport);
GLdouble world_x, world_y, world_z;
// 获取近裁剪面上的交点
gluUnProject( (GLdouble) mouse_x, (GLdouble) mouse_y, 0.0,
modelview, projection, viewport,
&world_x, &world_y, &world_z);
Point3f near_point(world_x, world_y, world_z);
// 获取远裁剪面上的交点
gluUnProject( (GLdouble) mouse_x, (GLdouble) mouse_y, 1.0,
modelview, projection, viewport,
&world_x, &world_y, &world_z);
Point3f far_point(world_x, world_y, world_z);
return LineSegment(near_point, far_point);
}
在得到两个交点之后,我们使用它们通过返回语句直接构建一条线段,然后求物体的哪个点与该线段相交。有没有更简单的算法呢?
- 怎样用鼠标选中三维空间中的一个顶点
- 三维空间中的坐标系
- 三维空间中的旋转变换
- 三维空间中的三角形旋转
- 三维空间中的平面
- 三维空间中的平面方程
- 怎样用SQL语句查询一个数据库中的所有表?
- 分享一个Unity3D点击模型跟随鼠标移动的小脚本(包括屏幕视图到三维空间的坐标转换)
- 游戏中 ----三维空间中的 向量
- 三维空间中的旋转--旋转向量
- 三维空间中的旋转--旋转向量
- 三维空间中的两直线相交
- 三维空间中的旋转--旋转向量
- 三维空间中的旋转--旋转向量
- 三维空间中的几种坐标系
- 判断三维空间中的一个点是否在三角形内,边上的一种算法
- 禁止鼠标多次点击选中div中的文字
- 禁止鼠标多次点击选中div中的文字
- 黑马程序员--面向对象(三)
- windows下使用WinPcap获取网卡列表
- javascript传递多个参数
- 如何使用GDAL进行图像镶嵌
- 做一名合格的前端开发工程师---各浏览器对页面外部资源加载的策略
- 怎样用鼠标选中三维空间中的一个顶点
- c++构造函数中explicit关键词作用
- 算法导论学习笔记(16)——图的基本算法
- 黑马程序员--Winform(一)
- Oracle 字符集问题
- jquery+html5 4--躲避子弹游戏1
- linux内核下载链接
- Oracle字符集问题总结
- 黑马程序员—3、JAVA基础语法&数组