• 締切済み

ある条件での円の描く軌跡の求め方を教えてください

例として(9,6)から(14,5)を半径6の円が描く軌跡を求めています 他に (14,5)→(20,8)半径17 (9,9)→(6,12)半径4 (6,12)→(7,14)半径2 (7,14)→(11,16)半径8 (11,16)→(24,14)半径18 を求めなくてはいけないので効率的な方法があれば教えてください

みんなの回答

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.3

移動時間の計算をするんなら、移動の道のりと移動の速さが分かれば充分。 (x[1], x[2])から(y[1],y[2])へ直線移動する場合の道のりは   √((y[1]-x[1])^2 + (y[2]-x[2])^2) これを移動の速さ (mm/秒)で割り算すればいいんです。

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.2

 NCフライスに関するご質問でしょうかね。「軌跡」の「端」が半円になるのはお分かりでしょう。ご質問のポイントは「軌跡」の「側面」かとおもいます。  円の半径をrとし、その中心が点x = (x[1], x[2])から点y = (y[1], y[2])へまっすぐ動いたとします。  作図法としては、以下のように説明できるでしょう:「軌跡」の「側面」は2本の線分であって、その一方は点xと点yを結ぶ線分をその線分に直交する方向にrだけ平行移動させたもの、他方は点xと点yを結ぶ線分をその線分に直交する方向に-rだけ平行移動させたもの。  これを座標の計算でやるとこうなります: 点x = (x[1], x[2])から点y = (y[1], y[2])へのベクトルv = (v[1], v[2])は   v = y-x = (y[1]-x[1], y[2]-x[2]) で、その長さ |v| は   |v| = √(v[1]^2 + v[2]^2) = √((y[1]-x[1])^2 + (y[2]-x[2])^2) なので、「vと同じ方向を向いていて長さが1のベクトル」をs = (s[1], s[2])とすると   s = v/|v| = (v[1]/|v| ,v[2]/|v|) です。sはxとyを結ぶ線分の方向を表している。  さて、「sと直交する長さが1のベクトル」をtとすると   t = (t[1], t[2]) = (-s[2], s[1]) = (-v[2]/|v|, v[1]/|v|) である。(sとtが直交するということは、両者の内積 s・t = s[1]t[1]+s[2]t[2] が0になるということに他なりません。)  こうして得たtを使って作図法を書き直します。すると:「軌跡」の「側面」は2本の線分であって、その一方は点xと点yを結ぶ線分をtの方向にrだけ平行移動させたもの、他方は点xと点yを結ぶ線分をtの方向に-rだけ平行移動させたもの。  つまり:一方は点(x+rt)と点(y+rt)を結ぶ線分で、他方は点(x-rt)と点(y-rt)を結ぶ線分。 というわけで、コタエ:「軌跡」の「側面」は2本の線分であって、    |v| = √((y[1]-x[1])^2 + (y[2]-x[2])^2) とするとき   点(x[1]-r(y[2]-x[2])/|v|, x[2]+r(y[1]-x[1])/|v|)と点(y[1]-r(y[2]-x[2])/|v|, y[2]+r(y[1]-x[1])/|v|)を結ぶ線分 と   点(x[1]+r(y[2]-x[2])/|v|, x[2]-r(y[1]-x[1])/|v|)と点(y[1]+r(y[2]-x[2])/|v|, y[2]-r(y[1]-x[1])/|v|)を結ぶ線分

flyaway1589
質問者

お礼

そうです!NCです!移動時間を求めろという課題です なるほど、詳しくありがとうございます

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

いずれにしろ中心の軌跡を求めます。問題には指定されていないので直線的に動くとすれば (1)(14,5)と(20,8)を結ぶ直線Lを引く (2)(14,5)と(20,8)を中心とする円C1,C2を書く (3)Lに平行な2つの円の共通接線L2,L3を引く (4)C1の左半分、C2の右半分、L1,L2で囲まれるぶぶんがもとめる軌跡です。 他の問題も全く同様。

flyaway1589
質問者

補足

遅くなりました 作図法ではなく値を求めたかったのです 言葉足らずで申し訳ありません

関連するQ&A