私は、A *アルゴリズム(Thanks, Patrick Lester, for a great tutorial)を使ってパスを見つけることに関わるプロジェクトに取り組んでいます。一連のPNGマップが提供され、関心のあるポイントはWebサービスから受け取った座標で指定され、問題はそれらのポイント間のパスを表示することです。いろいろなレベルが同じ座標系に位置していなかったので、最初は少し災害だったので、あるレベルから別のレベルに移動すると、zを変更するだけではなく、x座標とy座標の意図しない移動が発生しました。レベルが完全に奇妙に変化し、いくつかの非常に最適ではないパスが生成されます。イメージと変換されたイメージを指定して変換行列を導出しますか?
これを修正するには、パス計算をレベル別ソリューションに分割して、中間レベルの非計算ステップとして新しいレベルに移行する必要がありました。代わりに、すべてのレベルマップを1つの座標系の一部にすることで、あるレベルのリフトを見ると、同じx座標とy座標で到達するすべてのレベルにリフトが表示されるようにしました。
問題は、元のマップで使用されている関心のある点の座標だけです。これらの座標は、新しいマップ上で意味のあるものとは一致しません。パスの開始点と終了点がマップシステムで正しくプロットされていないため、システム全体がうまく機能していると確信しています。
古いマップから新しいマップ(すべて1座標空間にある)を取得するには、それぞれ単純かつ反復可能な方法で変換されました。私が座標を取得し、それが参照するマップに適用されたのと同じ変換を適用すると、すべてがうまくいくとわかります。マップは回転、サイズ変更、翻訳されます。
与えられた画像と結果の変換画像には、変換行列を導き出す方法がありますか? iPhoneプロジェクトなので、理想的には私はCGAffineTransformを探しています。マップごとに古いマップを再度操作して新しいマップを取得し、変換を記録することができましたが、ここで後方に作業する方法があるかどうか不思議です。
(読者 - あなたがタグを助けることができるならば、この問題はもっと良い、それは少し私のエリアの外にいてください)
変換はアフィン1であるため、厳密な意味での行列ではありません –
変換の式を書き留めることができるように、元のPOIと変換されたPOIがあるかどうかはわかりません。 –
元の地図の座標系にPOIを持つ。私は元のマップだけでなく、変換されたマップを持っています。私はPOIに適用して新しいマップの座標系に変換することができるように、元々のマップと変換されたマップ(主に学術的関心からのもの)を使用して変換を導き出すことを望んでいます。変換を導出するならば、古いマップと新しい(変換された)マップの両方から任意のPOIを取得できます。 –