怎样知道节点A和某一个树节点的距离小于20?求大佬讲讲算法
c语言吧
全部回复
仅看楼主
level 5
怒人水瓶
楼主
如图,所有的节点在一个平面坐标系上,树节点的每一个节点的x,y坐标是已知的,节点A在不断的移动,也知道A的横纵坐标,A移动过程中发现它和某一个树节点的间距小于20,就停止移动,优先选择左边和上边的树节点
2023年02月07日 15点02分
1
level 5
怒人水瓶
楼主
总不能每移动一次,和所有的树节点都判断一次,是否A节点和它们的间距是否小于20,这样效率太低了,有没有更好的思路
2023年02月07日 15点02分
2
Dina365
判断的物体太少了,只有1个结点和其它几个结点做判断,不优化算法速度也很快。就算结点增加到几百个,每一帧判断这个A点到其他所有结点的距离,速度也是非常快的。比如一秒坐标移动100次,完成一轮判断的时间是远远小于0.01s的。
要对CPU的性能有自信
2023年02月08日 03点02分
level 15
aaaaaaa421
https://www.zhihu.com/question/22839114
2023年02月07日 15点02分
3
怒人水瓶
@aaaaaaa421
谢谢,原来这东西叫碰撞检测,好贴切
2023年02月07日 15点02分
level 1
ordpus
这和树有关系么。。。
2023年02月07日 20点02分
4
level 1
万事皆有因果😇
简单的碰撞检测,直接把所有点整两个数组按照X、Y大小排序取MaxX、MinX、MaxY、MinY组成一个矩形,只要A没进这范内就不用判断,进了就照排好的序由尾至首还是由首至尾挨个点比较就完了。
2023年02月08日 09点02分
5
1