猫史档案馆


侦测物体X到物体Y的多种表达方法

用户:FalseKnightFalseKnight查看:0 回复:0 评论:0 创建时间:2022-08-02T17:53:52


在源码编辑器中,我们常常需要侦测物体间(如:物体X与物体Y)的距离,就能用到以下代码:

center_image

但这条代码必须在物体X身上使用,无法在其他角色上侦测物体X与物体Y之间的距离,如果想要执行这种操作,就能用到以下代码:

center_image

设物体X的X和Y坐标分别是X0和Y0,物体Y的X和Y坐标分别是X1和Y1,换成数学公式就是:√[(X0-X1)^2+(Y0-Y1)^2]

这里面利用了勾股定理a^2+b^2=c^2,对比原代码还有一个优点就是该代码的小数位数长,而原代码却只有2位小数。

还有一种代码要用到三角函数,这种代码首先要让物体X执行一次:center_image然后有两种选择,一是:center_image或者:center_image

解析:绝对值“||”是必须加的,因为X0-X1和Y0-Y1都有可能是负数。

center_image

在图中,∠ACB为直角,设点A为(X0,Y0),点B为(X1,Y1),b为(|X0-X1|),a为(|Y0-Y1|),则物体X面向的角度=∠BAC,此时

c/b=sec ∠BAC=1/cos ∠BAC,c/a=csc ∠BAC=1/sin ∠BAC。

这个方法理解难度较大,可以在网上查资料了解三角函数。

这个方法还有一个缺陷,因为源码编辑器中的三角函数库最多两位,所以还是会有偏差。

(注:物体X与物体Y代表的物体没有先后顺序)

有其他方法或本文有误的可以打在评论区,如有雷同,纯属巧合。

编者:FalseKnight


回复

上一页1 页 / 共 0下一页