あなたの質問を言い換えると、それは私の考えであると言い換えることができます。
ポイントA = (x1, y1)
とB = (x2, y2)
が付与されました。がAB
に垂直であり、BZ
が長さがh
であるような点Z = (x3, y3)
を探したいとします。
A
からB
までのベクターは、v = (x2 - x1, y2 - y1)
である。そのベクトルへの垂直ベクトルの計算は簡単ですw = (y2 - y1, x1 - x2)
です。 A
を横切る線は、AB
に垂直であり、F(s) = A + s*w = (x1 + s*(y2 - y1), y1 + s*(x1 - x2))
と表され、s
の範囲は実数を超える。だから、F(s)
がから離れてh
であるような値s
を選ぶ必要があります。
ピタゴラスの定理から、F(s)
からB
までの長さの正方形は常にF(s)
からA
までの距離の二乗、プラスA
からB
までの距離の二乗になるだろう。そこから私たちは、私たちが望む散らかっの式を得る:
h**2 = s**2 * ((y2 - y1)**2 + (x1-x2)**2) + ((x1 - x2)**2 + (y1 - y2)**2))
= s**2 * ((x1 - x2)**2 + (y1 - y2)**2)) + ((x1 - x2)**2 + (y1 - y2)**2))
= (s**2 + 1) * ((x1 - x2)**2 + (y1 - y2)**2))
(s**2 + 1) = h**2/((x1 - x2)**2 + (y1 - y2)**2))
s**2 = h**2/((x1 - x2)**2 + (y1 - y2)**2)) - 1
s = sqrt(h**2/((x1 - x2)**2 + (y1 - y2)**2)) - 1)
を今すぐバックF(s) = (x1 + s*(y2 - y1), y1 + s*(x1 - x2))
へs
のためにその表現をプラグインして、あなたはあなたのポイントZ
を持っています。他の可能な答えは、反対側の同じ距離です。
点は線に垂直ではありません。 – Gedrox
これは数学の質問です。http://math.stackexchange.com/ –
に質問してください。問題の条件に 'h 'の値が含まれているのですか、' A'を通って直交する線の任意の点を探したいだけです'AB'? –