【问题标题】:How to calculate realistic distance between two points on isometric maps?如何计算等轴测图上两点之间的实际距离?
【发布时间】:2014-02-19 20:45:01
【问题描述】:
我正在开发一个等距游戏,我必须计算一个项目是否在另一个项目的范围内,所以在正常投影中,一个圆圈可以我的意思是:
float dist = sqrt((x1-x2)^2 + (y1-y2)^2);
但由于这是一个等距投影,其中“x”单位是“y”单位的两倍,我如何计算项目的范围?
任何提示都会有所帮助
【问题讨论】:
标签:
iphone
objective-c
math
cocos2d-iphone
isometric
【解决方案1】:
我不确定我是否理解哪个单位比另一个单位大以及在哪个参考系统中,但以下表达式之一应该起作用:
float dist = sqrt(((x1-x2)/2)^2 + (y1-y2)^2);
或
float dist = sqrt((x1-x2)^2 + ((y1-y2)/2)^2);
【解决方案2】:
这是正确的公式:
float dist = sqrt((x2-x1) + (2*(y2-y1))^2);
在等轴测图中,y 轴是 x 轴的一半。
因此,y 中的行进距离是投影中的两倍,但请注意,这与将 x 距离减半不同。
我希望这会有所帮助。