hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 460|回复: 4

ORCA避障算法中,判断小球是否会碰撞的疑惑

[复制链接]

948

主题

1162

帖子

3655

积分

超级版主

Rank: 8Rank: 8

积分
3655

论坛头条论坛元老谋士数据帝优秀版主超级版主见习版主论坛版主

发表于 2023-10-2 16:06:40 | 显示全部楼层 |阅读模式
算法的背景是,球A B在平面上运动,已知A B当前速度与位置。如何判断检测时间T后,两球是否碰撞

网上有文章介绍改算法。下面是摘抄的截图
原文在:https://stackoverflow.com/questi ... runcated-cone-in-3d
参考:https://zhuanlan.zhihu.com/p/74888471

  



其中有段算法 不太明白,期望大神解惑
  1.     const Vector3 relativePosition = other->position_ - position_;                        //相对位置    const Vector3 relativeVelocity = velocity_ - other->velocity_;                        //相对速度    const float distSq = absSq(relativePosition);                                                //相对距离的平方    const float combinedRadius = radius_ + other->radius_;                                //合并半径    const float combinedRadiusSq = sqr(combinedRadius);                                //半径平方    Plane plane;    Vector3 u;    if (distSq > combinedRadiusSq) {        /* No collision. */        const Vector3 w = relativeVelocity - tau * relativePosition;        /* Vector from cutoff center to relative velocity. */        const float wLengthSq = absSq(w);        const float dotProduct = w * relativePosition;        if (dotProduct < 0.0f && sqr(dotProduct) > combinedRadiusSq * wLengthSq) {        // 第二个条件不明白   文章有解释:dotProduct = sqrt(wLengthSq) * |P| * cos(psi) and |P| * cos(pi/2 - phi) = combinedRadius then cos(psi)^2 > cos(pi/2 - phi)^2  没看懂            /* Project on cut-off circle. */                                                                                            const float wLength = std::sqrt(wLengthSq);            const Vector3 unitW = w / wLength;            plane.normal = unitW;            u = (combinedRadius * tau - wLength) * unitW;        }        else {        }    }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
世界上最遥远的距离,不是生与死的距离,而是我站在你面前,你却不知道我爱你
回复

使用道具 举报

0

主题

174

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:07:40 | 显示全部楼层
二球心距离大于两半径之和就不会碰撞。碰撞检测。
回复

使用道具 举报

0

主题

205

帖子

49

积分

新手上路

Rank: 1

积分
49
发表于 2023-10-2 16:08:14 | 显示全部楼层
做过空间多粒子布朗运动的模拟,做凸多面体的碰撞检测用到闵可夫斯基和。
回复

使用道具 举报

0

主题

186

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:08:47 | 显示全部楼层
这个问题能解决讨论的人不会很多,有门槛的。
回复

使用道具 举报

0

主题

182

帖子

76

积分

关内侯

Rank: 2

积分
76
发表于 2023-10-2 16:09:43 | 显示全部楼层
在自动泊车系统里这是关键算法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 16:15 , Processed in 0.074626 second(s), 23 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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