OpenGL精确选择与连线DEMO(含源码)
2006-01-05 11:24
232 查看
上次我写了《通过读取Z Buffer深度值将屏幕2D坐标转化为场景3D坐标》,这个DEMO就是基于这篇文章的。比如我们想用鼠标依次选择一堆球中的2个小球用线将它们串连起来,怎么用OpenGL实现呢?
首先,在鼠标移动时将鼠标的屏幕坐标转化为3D场景坐标。然后,当第一次按下鼠标左键时,判断转化后的场景坐标是否在某个球体上,若在,则该球体被选中,将该坐标作为连线段的起点;当第2次按下鼠标左键时,同样判断转化后的场景坐标是否在某个球体上,若在,则该球体被选中,将该坐标作为连线段的终点。最后,画这条连线段。
本DEMO画了3个小球。当用鼠标左键选中小球时,小球会变为白色,选中2个球,会产生连线,而且两连接点就是鼠标在球体上点击的位置,十分精确。
操作说明:
←和→键:左右转动场景 ↑和↓键:前后移动场景
H键:查看帮助 ESC键:退出程序
下面是截图:
没选择连线时:
选择并连线后:
可执行程序和源代码下载:
connect_ball.rar
首先,在鼠标移动时将鼠标的屏幕坐标转化为3D场景坐标。然后,当第一次按下鼠标左键时,判断转化后的场景坐标是否在某个球体上,若在,则该球体被选中,将该坐标作为连线段的起点;当第2次按下鼠标左键时,同样判断转化后的场景坐标是否在某个球体上,若在,则该球体被选中,将该坐标作为连线段的终点。最后,画这条连线段。
本DEMO画了3个小球。当用鼠标左键选中小球时,小球会变为白色,选中2个球,会产生连线,而且两连接点就是鼠标在球体上点击的位置,十分精确。
操作说明:
←和→键:左右转动场景 ↑和↓键:前后移动场景
H键:查看帮助 ESC键:退出程序
下面是截图:
没选择连线时:
选择并连线后:
可执行程序和源代码下载:
connect_ball.rar
相关文章推荐
- jQuery模拟实现的select点击选择效果【附demo源码下载】
- OpenGL选择与拾取GL_SELECT 附源码
- android选择相册.预览.原图发送.拍照demo源码
- Ios精品源码,扁平化的ActionSheet仿花椒截屏demo文件签名重叠卡片滚动汽车仪表盘
- 简单易懂的Flex布局教程,附送flex-demo源码
- Ios精品源码,扁平化的ActionSheet仿花椒截屏demo文件签名重叠卡片滚动汽车仪表盘
- 【附源码】【Android 3D OpenGL】开发之一——变幻的背景色【MacroCheng原创】
- 【附源码】【Android 3D OpenGL】开发之四——投影中的正交与透视【MacroCheng原创】
- Android串口操作,简化android-serialport-api的demo(附源码)
- PHP获取网页所有连接的方法(附demo源码下载)
- Firefly——dbentrust 示例DEMO (源码+教程)
- 【javascript城市选择器】javascript城市选择器插件源码可以下载了
- 代码客:G-TcpServer(IOCP) 1.0 正式版及Demo源码
- [置顶] 【Android】时间选择器,选择日期DatePicker 简单详解demo及教程
- jQuery实现的导航动画效果(附demo源码)
- jQuery实现的导航动画效果(附demo源码)
- Android 二维码 生成和识别(附Demo源码)
- (素材源码) 猫猫学iOS 之UIDynamic重力、弹性碰撞吸附等现象牛逼Demo
- Iocp Tcp Server——G-Socket1.1 Demo源码(VC & Delphi)
- 线性时间选择算法——源码(正确运行哦)