游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5979|回复: 15

如何选取点和三角面

[复制链接]

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2007-3-14 08:58:00 | 显示全部楼层 |阅读模式
在我的游戏中,需要对点与三角面的单个或多个选取。选取点,用鼠标拉一个框,进行框选。选取三角面,则用鼠标直接点击三角面。

我的方法是:
点选取:鼠标拉框时,鼠标按下时的窗口客户区的点为p1,放开时点为p2.p1,p2就是一个长方形的左上角与右下角,由p1,p2可计算出p3,p4,即左下角与右上角。把p1,p2,p3,p4变换为世界坐标系的坐标。设pos为摄相机所在位置,由pos与p1,p2,p3,p4可构成四个平面,这四个平面都由向内的法向量与pos点表示。最后,遍历模型中所有的点,判断一个点是否在这四个平面内就OK了。

三角面选取:设鼠标在窗口客户区点击的点为p0,而三角面的三个点为p1,p2,p3,摄相机所在位置在pos。先把p0换算为世界坐标系坐标(这个点在近平面上),再由pos与p1,p2,p3组成了三个平面(一个三棱锥体)。最后,只须判断p0点是否在这个三棱锥体中就行了。

我已经在程序里实现了上述的算法,只是一个较大的模型处理的时间有些长,我的方法是否正确?或还有没有其它更快的方法?请指教。。。。。。。。。

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
 楼主| 发表于 2007-3-14 09:12:00 | 显示全部楼层

Re:如何选取点和三角面

这论坛,怎么没人回?

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
 楼主| 发表于 2007-3-14 20:42:00 | 显示全部楼层

Re:如何选取点和三角面

怎么没人回贴啊!!!!!!!!!!!!!!!!!是你们不知道还是这个问题太简单不屑于回答?????????????????????????

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
 楼主| 发表于 2007-3-14 20:42:00 | 显示全部楼层

Re:如何选取点和三角面

怎么没人回贴啊!!!!!!!!!!!!!!!!!是你们不知道还是这个问题太简单不屑于回答?????????????????????????

10

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2007-3-14 22:33:00 | 显示全部楼层

Re:如何选取点和三角面

楼主可以去看一下DX SDK里边的一个例子ick

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-3-14 23:49:00 | 显示全部楼层

Re:如何选取点和三角面

对啊,取看SDK 里面 Pick的例子, 不过要补充一下,那个例子不能拾取做了世界矩阵位移变换的物体。
拾取射线还要×被拾取物体变换的逆矩阵

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
 楼主| 发表于 2007-3-15 19:35:00 | 显示全部楼层

Re:如何选取点和三角面

你们以为我还不知道用射线去选取吗????????????????????????????我问的是点和三角面!!!!!!!!!!!!!!注意是三角面!是一个三角形!

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-3-15 20:42:00 | 显示全部楼层

Re:如何选取点和三角面

大数据量的话,前期尽量减少一些无用的数据,如去掉背面的图形。

关于三角面拣选,我没做过,不过感觉你的方法不对,射线拣选和三角面不矛盾,选中的点直接去和三角面判断就可以了,用不着像你那样弄个三棱锥.

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-3-16 08:21:00 | 显示全部楼层

Re:如何选取点和三角面

pick的例子本来就是拾取三角面的,你有没认真去看?

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-3-16 08:22:00 | 显示全部楼层

Re:如何选取点和三角面

拾取点和边,到要再考虑考虑
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-13 00:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表