您的位置:首页 > 运维架构

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  buffer