计算三维总偏差。

好吧,这可能比寻找解决方案更难解释。我正在开发一个系统,将元素附加到另一个元素上,但我正在寻找一种不会消耗内存的解决方案。我正在使用Lua 5.0,并且无法包含/要求任何其他库。但是,如果我知道正确的计算方法,自己编写代码也可以。

我有一辆车,垃圾箱(是的,这些看起来奇怪的灰/蓝色东西是垃圾箱......归咎于Rockstar的GTA San Andreas的图形设计。)与车辆相连,表示边界框(更容易说;这表示车辆有多大。 模型是在这些垃圾桶中创建的,对象适合其中。)。我希望人们能够点击车子后备箱的某个地方,这已经可以工作,但我不确定如何计算从中心到用户已点击的位置的偏移量(中心是人型角色站立的地方)。

所以假设我们有以下坐标(可能有用?):

-左上:2753.8962,-2399.3669 -右上:2757.0393,-2399.3669 -左下:2753.8962,-2409.8771 -右下:2757.0393,-2409.8771 -中心:2755.4746,-2403.3447

偏移量如下(中心到...的偏移量):

-左上:-1.578533411026,3.9779634475708 -右上:1.5644228458405,3.9779634475708 -左下:-1.578533411026,-6.5323362350464 -右下:1.5644228458405,-6.5323362350464 -中心:0,0(当然。)

假设,玩家点击左上方或右上方。我将如何能够计算从中心到玩家点击位置的总距离。我一直在尝试混乱地使这些位置成为绝对位置,但是我在这方面没有任何进展,现在有点迷失了。

编辑:另外,当我想将其放在零点以下时,它必须将数字转换为负数。

[![图像](//i.stack.imgur.com/XXena.jpg)](//i.stack.imgur.com/XXena.jpg)

点赞
用户953482
用户953482

你可以使用勾股定理找到两个点之间的距离:

距离 = sqrt((clicked_x-center_x)^2 + (clicked_y-center_y)^2)

并且你可以使用减法找到一个点的 X 和 Y 偏移量。

x 偏移量 = clicked_x - center_x
y 偏移量 = clicked_y - center_y
2014-12-11 15:05:37