1

AとBが円上にあるように、中心Oを含む線ABを持つ円が与えられたと仮定します(OA = OB =半径)。接線tが点Aに描かれ、円の特定の点(a、b、c、d ...)から接線上の点(at、bt、ct、dt 、.)へのマッピングを計算する必要があります。 ..)距離Aa(円に沿った距離)が距離Aat(接線に沿った距離)と同じになるように(そして距離Ab、Ac、Adについても同じ)。ただし、ここでは、特定の制約を考慮する必要があります。AからBまでの円の片側からの円の点((a、b、c、d)の中)は、接線の片側に配置する必要があります(より近い)、そして円の形AからBの反対側からのものは反対側に配置されるべきです。基本的に、円はBで分割してから、接線にマッピングする必要があります。

A、B、O、a、b、c、dの座標に関する情報があることに注意してください。私は(at、bt、ct、dt)を計算することになっていました。この問題を解決するために、2つのアプローチがありますが、それらが常に正しく機能することを確認する方法がわかりません。

1)点Aでの接線の方程式を計算します。次に、各点(a、b、c、d)について、Aからの距離(円に沿って)を計算し、これらの距離を使用して(at、bt、ct)を計算します。 、dt ...)接線に沿って。ここで私が知らないのは、Aから(a、b、c、d)までの距離を計算する方法です。問題は「適切な側」の決定です。つまり、ポイントを接線の一方の側にマッピングするか、もう一方の側にマップするかをどのように決定する必要がありますか。これを決定する方法は何でしょうか。

2)点Aでの接線の方程式を計算します。次に、各点(a、b、c、d)について、Aからの距離(円に沿って)を計算し、これらの距離を使用して(at、bt、ct)を計算します。 、dt ...)接線に沿って。特定の点の「適切な側」を決定するために、その点の接線への投影を使用する場合があります。しかし、これでも、「どちら側がどちらか」をどうやって知るのでしょうか。おそらく、これを行うためのはるかに簡単な方法があります。

これを行う方法についての提案は大歓迎です。正確さが足りない場合は、詳しく説明します。

4

2 に答える 2

1

より良い提案は、Aが座標(1、0)(およびBがそれぞれ(-1、0))を持つように、円を原点を中心とする単位円にマッピングする座標変換を計算することです。変換は、回転を伴う拡張である必要があります。ここで、Aaの距離は、ラジアンで測定された迎え角aOAです。したがって、で簡単に計算できます。これは(1、atan2(y、x))です。ここで、(x、y)はaの座標です。

ここで必要なのは、逆変換を適用して元の座標系に戻ることだけです。

于 2010-11-13T19:15:47.373 に答える
0

円のどちら側にいるのかを判断するには、基本的に、線のどちら側にいるのかを判断する必要がありABます。それに対する答えについては、例えば点が線のどちら側にあるかを判断する を参照してください。

于 2010-11-13T18:50:02.840 に答える