アプリ版:「スタンプのみでお礼する」機能のリリースについて

土地家屋調査士の勉強してます。
座標計算で、1秒でも早く解きたいのですが、
A(a,b)、B(c,d)の2点から、ある一定の距離にある点、つまりAから距離e、Bから距離fの関係にある点を求める公式みたいのはありますでしょうか。
関数電卓の持ち込みが可能です。

A 回答 (4件)

公式ではありませんが手早くできそうな手順を。


方針としては平行移動と回転を使って線分ABを中点が原点に重なるようにx軸上に移し、
移った点A',B'からの距離がe,fとなる点P',Q'を見つけ、
最初に線分ABを線分A'B'に移したのと逆の手順で点P,Qの座標を求めると言うものです。

まず平行移動です。これは各点から((a+c)/2, (b+d)/2)を差し引いてやる事で出来ます。
この段階では実際にはなにも計算しません。最後で使います。

次に原点周りの回転を使って線分ABをx軸上に乗せてやります。
それには線分ABとx軸のなす角度αを求めます。tanα = (d-b)/(c-a)なので、
    α = Arctan((d-b)/(c-a))     …(1)
で求まります。

中点が原点に移動した線分ABに対し、原点中心、角度-αの回転をすることによりA'(-g,0),B'(g,0)に移ったとします。
このgを求める式は
    g = ((c-a)cosα + (d-b)sinα)/2    …(2)
です。

点A'からの距離がe、点B'からの距離がfである点のうちy座標が正の点をP'(x',y')、負のものをQ'(x',-y')としましょう。
辺A'P'、辺B'P'の長さがそれぞれe,fである事から
(x+g/2)^2 + y^2 = e^2
(x-g/2)^2 + y^2 = f^2
上の式から下の式を引いてgで割ると
    x' = (e^2 - f^2)/g    …(3)
また、三角形A'B'P'の面積をSとすると
S = (底辺)×(高さ)÷2 = gy/2
です。一方、ヘロンの公式により h = e+f+g とすると
S = sqrt(h(h-e)(h-f)(h-g))/2
です。これからyが求まります。即ち
    y' = sqrt(h(h-e)(h-f)(h-g))/g    …(4)
です。
これで点P'(x',y'), Q'(x',-y')が求まりました。

さて折り返し地点を過ぎましたので来た道を帰って行きましょう。
まず、原点中心、角度αの回転。ついでに平行移動もしちゃいましょう。求める点をP(p1,p2),Q(q1,q2)とすると
    p1 = x'cosα - y'sinα + (a+c)/2
    p2 = x'sinα + y'cosα + (b+d)/2
    q1 = x'cosα + y'sinα + (a+c)/2
    q2 = x'sinα - y'cosα + (b+d)/2    …(5)

文章にすると長いように見えますが、番号をつけたところを計算するだけですから割と楽だと思うのですが。
2次方程式解かなくて良いし。他の方法と比べてみてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
大変参考になりました。
よくわかりました。

お礼日時:2001/08/10 21:07

直接その問題を読んでいないので、想像で回答したいと思います。



点A、Bの座標が解っていると言うことは、A-B間の点間距離が解ると思います。ピタゴラスの定理
新点(Cと仮定)までの距離、A-C 「e」及び B-C「f」の
三辺が解れば、ヘロンの公式で3角形の面積が解ると思います。
三角形を組み合わせることによって多角形の面積が解ります。
確か、辺長と面積は必要ですが座標は記載しなくてもいいと記憶しております。

新点を座標で求めて、座標法などで一回で面積を出した方が早いかとは思いますが、
円の交点は単純な交点計算ではないので、ミスをする可能性がいっきに増します。
あまり勧められる方法ではありません。

早撃ち対応の電卓を、2つ並べて計算した方がいいのではないかと思います。

参考にしてください。
    • good
    • 1
この回答へのお礼

ありがとうございました。
大変参考になりました。
よくわかりました。

お礼日時:2001/08/10 21:07

どの程度お詳しい方かちょっと分かりませんので、


基礎的な所から順を追って解いてみますね。

求める点を点C=(x,y)としましょう。
AとCの間の距離がeという関係は式にするとこうなります。
(x-a)^2+(y-b)^2=e^2…(1)
BとCの距離がfという関係はこうです。
(x-c)^2+(y-d)^2=f^2…(2)
要は(1)、(2)の両方を満たす(x,y)の組を求めれば良い訳です。
(ちなみにsiegさんのコメントは、この2式が半径e,fの円を表していて、解が2円の交点の座標になるという事です)

さて解いてみましょう。
まず両方の式を展開してから(2)から(1)を引くと、
x(2c-2a)+y(2d-2b)=(e^2-f^2)-(a^2-c^2)-(b^2-d^2)
移項させると
y=x{(a-c)/(d-b)}+(e^2-f^2-a^2+c^2-b^2+d^2)/(2d-2b)…(3)
ですね。
面倒なのでここではG=(a-c)/(d-b)、H=(e^2-f^2-a^2+c^2-b^2+d^2)/(2d-2b)と置き換えちゃいましょう。y=Gx+Hです。
これを(1)に代入すると、
(x-a)^2+(Gx+H-b)^2=e^2
つまり、
(1+G^2)x^2+{-2a+2G(H-b)}x+{a^2+(H-b)^2-e^2}=0…(4)
となります。
(4)はxの2次方程式なので公式に入れれば解けるはずです(解がある場合は)。
求めたxを(3)に代入すればyも出ます。

公式と言えるかどうか分かりませんが、おそらくこれが一番ラクな求解法でしょうし、プログラム関数電卓なら一発で答えが出るようにもできると思います。
あ、ただしご自分で式の確認はお願いしますね。数式が合ってるかどうかは保証外ですのであしからず(笑)。

さらに念のために付け加えると、
x^2は計算機の世界でxの二乗を表す書き方です。
なお2次方程式の解の公式は中学2年か3年、
2点間の距離を求める式(または円の公式)は確か高校1,2年の参考書に載っていたと思いますので参考にして下さい(たぶん、です。昔のことなので…)。

では、ご健闘をお祈りします。
    • good
    • 1
この回答へのお礼

ありがとうございました。
大変参考になりました。
よくわかりました。

お礼日時:2001/08/10 21:07

A点、B点からそれぞれ半径e,fの円を書いてその交点を求めればいいわけですから文字式にしてとけば二点の座標をa, b, c, d, e, fで表すことが出来るはずです。

    • good
    • 1
この回答へのお礼

ありがとうございます。
でも、よくわかんないんですが。
もう少し、具体的にお願いできるとありがたいです。

お礼日時:2001/07/14 15:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!