2011-07-29 64 views
0

我試圖從自主代理的紙張轉向行爲中實現避障行爲。我堅持的是如何將全局座標(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是當地焦炭COORDS和X, y是敵人的木炭座標。

+0

這是一個「什麼是數學運算符得到1和10,並返回9」的問題,真的嗎? – unkulunkulu

回答

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

+0

這是我嘗試的第一件事,它不起作用。 AFAIK我應該與變換矩陣相乘,但我不知道要構建矩陣。 –

+0

您想對整組座標進行變換,以便您可以從新的軸座標點查看座標? –

+0

是的,我想將所有障礙座標(在全局空間中)轉換爲本地字符座標。 –