2012-02-22 12 views
0

グリッドに2つのタイルがあるとします。ポイントの座標を2単位離れて計算する方法は?

半径1の円として扱い、衝突の相互作用を試みます。

私は距離を決めることができますし、彼らが触っているのですが、何かを決定するのが難しいです(私は探しているものの言葉を知らない)。私は「Tile1-> Tile2の行にあるが、Tile1から2.01単位離れた新しい点[x、y]を見つける」と言うことができるようにしたい。

私は角度を見つけ、斜辺の長さを求め、長さのパーセントを2倍にして、その数にxとyの差を掛ける必要があると思います。より良い(または正しい)方法がありますか?

+0

http://math.stackexchange.com/ – Matthias

答えて

2
dTile1から Tile2

までの距離である
lNewPoint.x = Tile1.x + (Tile2.x - Tile1.x) * 2.01/d; 
lNewPoint.y = Tile1.y + (Tile2.y - Tile1.y) * 2.01/d; 

lNewPoint.x = Tile1.x - (Tile2.x - Tile1.x) * 2.01/d; 
lNewPoint.y = Tile1.y - (Tile2.y - Tile1.y) * 2.01/d; 

ソリューションはを前提としています

第二共線(あなたが探していた用語)ポイントはで見つけることができますとTile2は同一ではありません。その場合、d == 0であり、その解はその中心に半径が2.01で、Tile1の円である。

+0

にする必要があります。ありがとうございました! – jason

1

斜辺の長さは必要ありません。あなたはatan2()経由角度を(持っていたら、あなたは2.01で、それぞれを掛け、その後、単位距離のオフセットを取得するsin()cos()にそれをプラグインすることができます。

関連する問題