将全局坐标转换为字符本地坐标和返回

时间:2011-07-29 19:23:48

标签: algorithm coordinates

我正试图从自主代理的纸张转向行为中实现避障行为。我所坚持的是如何将全局坐标(2d)转换为我的角色的本地坐标?

基本上我说我在1.0,敌人是10,0。我想将原点移动到1,0所以我得到9,0作为敌人坐标。

我最终做了什么,

转换为本地,


[1 0 -tx]   [x]
[0 1 -ty] x [y]
[0 0  1]    [1]

然后回到全球使用,


[1 0 tx]   [x]
[0 1 ty] x [y]
[0 0 1]    [1]

tx,ty是本地char coords和x,y是敌人char coords。

1 个答案:

答案 0 :(得分:1)

只需减去积分。

相对=位置 - 移动轴点。

(10,0) - (1,0)=(9,0)

Displacement

修改

使用Affine transformation转换整个x,y平面:

仅针对数字问题,让我们选择另一个观点:(3,7)

[x] = [ 1 0 -3 ] = [x`] = x -3
[y]   [ 0 1 -7 ] = [y`] = y -7
[1]   [ 0 0 1  ] = [1 ] = we don't care

<强> Transformation matrix