游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1644|回复: 4

求教,用包围合怎么检测碰撞?

[复制链接]

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2008-9-14 20:41:00 | 显示全部楼层 |阅读模式
本人数学不好,求教怎么检测2个包围合是否碰撞?

2

主题

683

帖子

687

积分

高级会员

Rank: 4

积分
687
发表于 2008-9-15 06:02:00 | 显示全部楼层

Re:求教,用包围合怎么检测碰撞?

最基本的就是看一个盒的顶点是否在另一个盒里

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2008-9-15 11:25:00 | 显示全部楼层

Re:求教,用包围合怎么检测碰撞?

怎么实现?能教教我吗?

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2008-9-15 11:34:00 | 显示全部楼层

Re:求教,用包围合怎么检测碰撞?

最好能告诉我,用盒子的数学函数。每个点检测一次也太耗资源了。嘿嘿,先谢谢了。

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-9-15 21:58:00 | 显示全部楼层

Re:求教,用包围合怎么检测碰撞?

        public static Box Intersect(Box left, Box right)
        {
            Box r = new Box();
            r.Min.X = Math.Max(left.Min.X, right.Min.X);
            r.Min.Y = Math.Max(left.Min.Y, right.Min.Y);
            r.Min.Z = Math.Max(left.Min.Z, right.Min.Z);
            r.Max.X = Math.Min(left.Max.X, right.Max.X);
            r.Max.Y = Math.Min(left.Max.Y, right.Max.Y);
            r.Max.Z = Math.Min(left.Max.Z, right.Max.Z);
            return r;
        }

        public bool Intersects(Box right)
        {
            return !Intersect(this, right).IsEmpty();
        }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 08:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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