现在的位置: 首页 > 综合 > 正文

OpenGL精确选择与连线DEMO(含源码)

2013年02月06日 ⁄ 综合 ⁄ 共 478字 ⁄ 字号 评论关闭

     上次我写了《通过读取Z Buffer深度值将屏幕2D坐标转化为场景3D坐标》,这个DEMO就是基于这篇文章的。比如我们想用鼠标依次选择一堆球中的2个小球用线将它们串连起来,怎么用OpenGL实现呢?

      首先,在鼠标移动时将鼠标的屏幕坐标转化为3D场景坐标。然后,当第一次按下鼠标左键时,判断转化后的场景坐标是否在某个球体上,若在,则该球体被选中,将该坐标作为连线段的起点;当第2次按下鼠标左键时,同样判断转化后的场景坐标是否在某个球体上,若在,则该球体被选中,将该坐标作为连线段的终点。最后,画这条连线段。

     本DEMO画了3个小球。当用鼠标左键选中小球时,小球会变为白色,选中2个球,会产生连线,而且两连接点就是鼠标在球体上点击的位置,十分精确。

     操作说明:

      ←和→键:左右转动场景            ↑和↓键:前后移动场景

     H键:查看帮助                               ESC键:退出程序

下面是截图:

没选择连线时:

 选择并连线后:

可执行程序和源代码下载:

connect_ball.rar

抱歉!评论已关闭.