1

2D問題:デカルト座標系で三角形の3つの端の位置を測定します。次に、システム(三角形)を別のデカルトシステムに移動し、両端の位置を測定します。このデータに基づいて、3番目の端の位置を特定するにはどうすればよいですか?

ありがとう!(そして第二の角度としての悪い英語をお詫びします)

4

2 に答える 2

2

この質問は8年前のものですが、少し曖昧ですが、かなり簡潔に答えられると思います。もし私が出会ったら、誰か他の人が出くわして、実際の本当の答えから利益を得るかもしれません。受け入れられたものではなく。(受け入れられた「回答」に誤って賛成したことをお詫びします。当初は反対票を投じていましたが、質問が実際には少し曖昧であることに気づき、反対票を覆そうとしました。悲しいことに、私の初心者の担当者のせいで、それは実際の賛成票。反対票に値するものではありませんでしたが、賛成票に値するものでもありませんでした。)

リードアップ

したがって、単純なデカルトグリッドまたは参照フレームがあるとします。

10x10デカルト参照フレーム

そして、その10x10の参照フレーム内に、三角形のオブジェクトがあります。

原点に1点があるデカルト座標系の二等辺三角形

画像をラベル付けできませんでしたが、この三角形の(a、b、c)座標は、明らかにa =(0,0)、b =(0,4)、およびc =(4,0)です。

ここで、デカルト座標系(グリッド)内でその三角形を移動するとします。

デカルトグリッド上の原点から変換された三角形オブジェクト

したがって、「b」と「c」の新しい座標がb =(1,5)とc =(5,1)であるとすると、三角形x = x+1とy=y+1を移動しました。 )、「a」とは何ですか?

「a」が(1,1)になることは明らかですが、数学を見ると、

Δb=b2-b1

Δb=(x2、y2)-(x1、y1)

Δb=(1,5)-(0,4)

Δb=(1-0、5-4)

∴Δb=(1,1)または(+ 1、+ 1)

同じ答えに到達する2つの「c」座標に対して同じことを行うと、Δcも(1,1)に等しくなります。したがって、これは平行移動(線形運動)であり、回転ではありません。つまり、Δaも(1,1)!それで:

a2 =a1+Δa

a2 =(0,0)+(+ 1、+ 1)

a2 =(0 + 1,0 + 1)∴</ p>

∴a2=(1,1)

また、画像を見ると、「a」の新しい位置が(1,1)にあることがはっきりとわかります。

翻訳

しかし、それは単なるリードアップです。あなたの質問は、あるデカルト座標系から別の座標系に変換することでした。10x10の参照フレームがより大きな参照フレーム内にあることを考慮してください。

A

10x10グリッドを「ローカル」参照フレームと呼ぶことができ、おそらく「グローバル」参照フレーム内に存在します。実際には、このグローバル参照フレーム内に他の「ローカル」参照フレームがいくつかある可能性があります。

多数

ただし、簡単にするために、もちろん、あるデカルト座標系を別の座標系内で検討します。

A

次に、その「ローカル」参照フレームを「グローバル」参照フレーム内に変換する必要があります。

A

したがって、「ローカル」では、三角形の(a、b、c)座標は{(0,0)、(0,4)、(4,0)}のままですが、ローカル参照フレームの原点です。グローバル参照フレームの原点と位置合わせされていません!ローカル参照フレームがシフトしました(+ 3.5、+ 1.5)!

さて、私たちの三角形の位置は何ですか?!

基本的に同じようにアプローチします。「ローカル」参照フレームの相対位置は(+ 3.5、+ 1.5)であり、フレームの差を表すためにΔfと呼びます。したがって、グローバル原点に対する三角形はag = al +Δf、bg =bl+Δfになります。 、およびcg = cl +Δf。ここで、(ag、bg、cg)はグローバル参照フレーム内の座標であり、(al、bl、cl)はローカル参照フレーム内の座標です。

三次元デカルトシステム

これはまったく同じです。三角形の位置に3番目の「z」座標を含めるだけです。

回転

私があなたの最初の質問からしている仮定の1つは、あなたが実際に翻訳について質問していて、8年前にこの質問をしたときにローテーションに興味がなかったということです。

ただし、非常に迅速に、参照フレーム内で2Dオブジェクトを回転させるには、trigを使用する必要があるため、最初に、オブジェクトを回転している場所を決定する必要があります。これを回転軸と呼びます。次に、回転軸がどこにあるかを決定したら、三角形の3つのポイントのそれぞれについて(x、y)を再計算します。

x = r・cosθ

y = r・sinθ

ここで、θはオブジェクトを回転させる角度、「r」は回転軸からのその点の距離、「・」は単に乗算を意味します。

したがって、三角形をピオント「a」を中心に反時計回りに30度回転させると、次のようになります。

デカルト座標系内で反時計回りに30°回転した二等辺三角形

しかし、繰り返しになりますが、それはあなたの質問ではありませんでした。あなたの質問は、「2つのポイントの位置を指定して、3番目のポイントの位置を決定する」でした。

何の説明もなしに、あなたがローテーションについて尋ねていたとは思わないという理由だけで、あなたがしていることはあなたが後ろ向きに働くことです:

x = r・cosθの場合、θ= arccos(x / r)

これで回転角が得られ、欠落した点の元の位置に適用してその(x、y)を見つけることができます。また、元の平行移動の例と同様に、あるデカルト座標系から別の座標系まで機能します。つまり、「ローカル」参照フレームがグローバル参照フレーム内で回転する場合、ローカルフレーム内で何も変更されていないように見えても、グローバルフレーム内のオブジェクトのポイントの位置をプロットできます。

また、これは3D参照フレームでも機能します。

そして最後に、デカルトローカル参照フレームが平行移動と回転の両方である場合(ほぼ確実にそうです)、両方の方法を適用して、ポイントを他の(グローバル?)デカルト参照フレームにプロットします。

実世界のアプリケーション

ああ、たくさん!私たちの脳は、私たちが運転しているときや通りを歩いているときに、これを非常に直感的に行っているので、どこから始めればよいのかわかりません!

平行移動は簡単ですが、軸を横切るときに回転が少し毛むくじゃらになります。物事を簡単にするための1つのトリックは、トリガーをより簡単にするために、オブジェクトを1つの参照フレームから別のフレームに変換することです。

写真で物語を語る:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

そして、それはほんの始まりです...

それがお役に立てば幸いです。

于 2018-09-02T21:19:55.307 に答える
1

これはかなり漠然とした質問ですが、私が正しく読んでいれば、それよりもさらに少ない情報が必要になります。最初の座標系を2番目の座標系に変換する場合は、それを3つの点のそれぞれに適用して、3つの同等の点のそれぞれを見つけます。

そうでなければ、あなたが変容を持っていなければ、それは不可能だと思います。結局のところ、座標系の可能な変換の数は無限であり、2つのポイントの同じ2つの場所でありながら、3番目のポイントの異なる場所になる可能性があります。

于 2010-07-09T22:33:45.447 に答える