2016-05-16 5 views
0

これは基本的な三角法であると確信しています。私は何年も前から学校に通っていましたが、現実の状況にどのような機能を適用するかは分かりません。とにかく、試してみて、私は助けが必要かを説明するのではなく、私は少し図を描いた:既存の線に沿って2点を見つける方法

enter image description here

私は、P1を知っP2、R1とR2が、私はどのように覚えて(または知ることができませんどのようにp3とp4が何であるかを調べる方法)。

この設定の基本的なアプリケーションは2つの円(赤と青)があり、それらをキャンバスの周りにドラッグすると常に接続する必要があります。ピンク色のリンクは中心点を介してそれらを接続しますが、私は円の円周に線が入り込まないようにします。

希望は意味がありますか?前もって感謝します。

+0

私はそれではなく、プログラミングやソフトウェア開発の[math.se]についてですので、オフトピックとして、この質問を閉じるために投票しています。 – Pang

+0

これはオフトピックではなく、私がMaths Exchangeボードとは対照的にここに投稿した理由は非常にあります。 コンテキストはJavaScriptの実装を意図しています。私がこのような要請を数学の交換所に書いたのであれば、数学記法を使って方程式で答えを得ていたでしょう。私は答えをどのように実装するのか分かりませんでした。ここでそれを尋ねることによって、コード表記で表現されることを保証します。 私は使用している言語に関する情報を除外しました。これは関係がないためです。 JSでこの数学の問題に直面している人には、残された答えが役に立つと思います。 – jayfield1979

答えて

1

これは単純なベクトル数学ある(何三角法が必要とされない)

  1. P1P2の方向の単位ベクトルvを作成しますベクトル形式で容易である

    v=P2-P1; v/=|v| 
    

    そして2Dに入れたとき:

    v.x=P2.x-P1.x; 
    v.y=P2.y-P1.y; 
    l=sqrt((v.x*v.x)+(v.y*v.y)) 
    v.x/=l; 
    v.y/=l; 
    
  2. 今だけr1,r2

    ベクトル形式でP1,P2から翻訳:

    P3=P1+r1*v 
    P4=P2-r2*v 
    

    2Dで:

    P3.x=P1.x+r1*v.x; 
    P3.y=P1.y+r1*v.y; 
    P4.x=P2.x-r2*v.x; 
    P4.y=P2.y-r2*v.y; 
    

enter image description here

+0

ありがとうございました。私はベクトルマッチでよりうまく動作するようにあなたの答えを選択し、私は私の描画のためのベクトルベースのシステムを使用しています。 – jayfield1979

1

次方程式系解く必要があります:P3について

を - ちょうどR2と第2式のP4用P1用のR1を変更P4のために>

(X-p1x)/(p1x-p2x)=(Y-p1y)/(p1y-p2y) 
(X-p1x)^2 + (Y-p1y)^2 = r1^2 

同じ。

最初の式は、2点を与えられた線の式です。 そして、2番目の方程式は、中心点と半径を与えられた円の方程式です。

結果のX、Y値は、p3、p4の値になります。

1

私が言うことは少しです。私はあなた自身のコードを書くことができますが、もちろんそれを助けません。

ポイントP1、P2、および半径R1とR2を知っていますか?点P1とP2がそれぞれ座標(x1、y1)と(x2、y2)を持っているとします。

P1とP2を結ぶ直線は直線であるため、式m=(y2-y1)/(x2-x1)を使用して直線の傾きを計算することができます。勾配を知っているので、2つの座標を知っているので、cの切片を計算して、y=mx+cという数式を作成することができます。

いったん行式があると、半径R1を持つので、xの値を適用してポイントP3のyを計算し、x3とy3と言うことができます。同様に、P4の座標を計算します。

+0

ありがとう、ありがとう、あなたは式の2番目の部分に 'c'があることを明確にすることができますか? 'y = mx + c'?ありがとう。 – jayfield1979

+0

@ jayfield1979標準の線方程式から 'x = 0'(行オフセット)のときは' y'の位置になります。この方法は垂直線では機能しませんし、 '| dy | >> | dx |'の場合には精度を失います。このためにはベクトルとパラメトリックのどちらかの方が良いでしょう – Spektre

1

レッツは、P1間の距離(x1、y1)とP2(X2、Y2)
したがって D = SQRT((X1-X2)^ 2 +(Y1-Y2)^ 2)ここで
をd点P3(X3、Y3)はR1の比でP1とP2との間の線を分割:(D-R1)

したがって
X3 =(R1の* X2 +(D-R1)* X1)/ Dと
Y3 =(R1 * Y2との+(D-R1)* Y1)P4用

同様に/ D(X4、Y4)
X4 =(R2 *×1 +(D-R2)* X2)/ Dおよび
Y4 =(R2 *のY1の+(D-R2)* Y2)/ D

関連する問題