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

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

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

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

     操作说明:

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

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

下面是截图:

没选择连线时:

 选择并连线后:

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

connect_ball.rar

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值