• ベストアンサー

円の中を通る点の軌跡を、パソコンで表現する方法は?

半径αの円が平面上の直線を回転しながら移動するとき、直線から高さβの動かない点と接触します。 点βが円の中で描く軌跡の求め方を教えて下さい。  紙1枚に、これを一目瞭然に分かりやすく表現しなくてはいけなくなりました。 軌跡を図で表したいです。出来れば、式も添えて。 エクセル等の何かソフトを使って、どの様な方法でも良いのでやり方を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.29

VB.NETのプログラムコードを載せておきます。 フォームにButtonとPicureBoxを配置して、 Buttonのクリックイベントに下記のコードを記述してください。 PicureBoxのサイズは500×220にしてください。 VB.NETは、無料のVisula Studio Express 2013 for Desktop をダウンロードしてインストールすれば使えます。 VB.NETの使い方は、ここで簡単に説明することはできないので、入門用のサイトでも見て学習してください。 http://homepage1.nifty.com/rucio/VBNyumon/Index_beg.htm Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim i As Integer, n As Integer Dim a As Single, b As Single, c As Single Dim p As Single, q As Single Dim x1 As Single, y1 As Single Dim x2 As Single, y2 As Single Dim objPen = New Pen(Color.Black, 2) Dim objGrp As Graphics = PictureBox1.CreateGraphics a = 100 b = 80 c = Math.Sqrt((2 * a - b) * b) For n = 0 To 10 objGrp.Clear(PictureBox1.BackColor) objGrp.DrawLine(objPen, 0, 10 + 2 * a, PictureBox1.Width, 10 + a * 2) objGrp.DrawEllipse(objPen, 10 + c * n / 5, 10, 2 * a, 2 * a) objGrp.FillEllipse(Brushes.Black, 7 + a + c, 7 + 2 * a - b, 6, 6) p = c / a * (n - 5) / 5 For i = 0 To n * 10 q = c / a * (50 - i) / 50 x1 = (b - a) * Math.Sin(p + q) + a * q * Math.Cos(p + q) + c * n / 5 y1 = (b - a) * Math.Cos(p + q) - a * q * Math.Sin(p + q) If i > 0 Then objGrp.DrawLine(objPen, 10 + a + x1, 10 + a - y1, 10 + a + x2, 10 + a - y2) x2 = x1 y2 = y1 Next Threading.Thread.Sleep(100) Next objPen.Dispose() objGrp.Dispose() End Sub

creampuff123
質問者

お礼

nag0720さん、どうもありがとうございました! 連絡が遅くなりまして、失礼致しました。 VBを使い、教えて頂いたコードをコピペして  全くの素人な私でも簡単に、欲しいものが作れました。 本当に助かりました。ありがとうございます。 ベストアンサーに選ばさせて頂きます。 でもこの感謝の気持ちはそれでは足りない程です。 今、線を足したり、数値を表示させたり、色々自分で脚色することに格闘しております。 相談中にも申しましたが、私は数学やプログラム等と無縁な生活をしております。エクセルすら未経験で、プログラムも未経験です。 数学は学生以来で、行列って懐かしいなー。こんな公式あったなー。というレベルでして。 今回どうしても、この一枚の書類が必要に迫られ、途方に暮れていました。 最悪の場合、手描きでと考えていましたが、 手描きのものでは、信憑性がなかったので。 nag0720さんをはじめ、皆さんのおかげです。 ありがとうございました!

その他の回答 (31)

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.32

>…どの様にすれば、図形が描けるか… EXCEL 使用の場合なら…。 (1) [r, θ] 表 - 算式を作成。  r = √{α^2(cosθo -φ)^2 + d^2 }   θ= arccos{α(cosθo -φ)/r } ± φ   :φ∈ [0, 2*cosθo ] … この区間を所望ステップで分割指定    θo = arcsin(d/α)    d = |α-β| > 0    ± 上半 / 下半分 (2) [r, θ] 表 → [x, y] 表へ変換。  [x, y] = [r*cosθ, r*sinθ] (3) [x, y] 表を「散布図」グラフに描かせる。 (円板は、[α, θ] 表 (θは 0 から 2π まで所望ステップで分割指定) → [x, y] 表へ変換) → 「散布図」グラフに描かせておく) …てな調子です。   

creampuff123
質問者

お礼

178-tallさん、どうもありがとうございました! とてもご丁寧に教えて頂きありがとうございました! 式も分からない、その式の使い方も分からない状態の私に親切にお付き合い頂き、 感謝の気持ちでいっぱいです。 エクセルは使えるようになりたいので、 今回はVBを使用しましたが、教えて頂いた通りにチャレンジしてみます。 お世話になりました。 ありがとうございました!

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.31

>ANo.30  まとめ損ねの訂正です。  r = √{α^2(cosθo -φ)^2 + d^2 }  θ= arccos{α(cosθo -φ)/r } ± φ   :φ∈ [0, 2*cos(θo) ]    θo = arcsin(d/α)    d = |α-β| > 0    ± 上半 / 下半分   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.30

>ANo.28 算式まとめ。 「逆三角関数」は EXCEL にて通用する (象限を識別できる) =ACOS( ) を使用。  r = √{α^2(cosθo -φ)^2 + d^2 }  θ= arccos{α(cosθo -φ)/r } ± φ   :φ∈ [0, 2*cos(θo) ]    θo = arcsin(d/α)    d = α-β > 0    ± 上半 / 下半分   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.28

>実は、私の欲しいαとβは 0<β<α なのです。 実は、α < β < 2α で手こずってました。 一段楽したので、0 < β<α 用の [r, θ] 表 - 算式を試作してみましょう。 「逆三角関数」は EXCEL にて通用する (象限を正しく認識してくれる) =ACOS( ) を使用。  r = √{α^2(cosθo -φ)^2 + d^2 }  θ= φ- arccos{α(cosθo -φ)/r }   : φ∈ [0, 2*cos(θo) ], θo = arcsin(d/α), d = α-β > 0 α < β < 2α では「間延びしたカーヴ」でしたが、0 < β<α だと「押しちぢめたカーヴ」ですネ。 ペン先に対する円板の回転方向がたがいに真逆だから、なのでしょう…。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.27

度重なる訂正で、蒙御免。 >[r, θ] 表 > r = √{ {α(cos(θo) -φ}^2 + p^2 } > θ = ρ + φ >  : ρ = arcsin(p/r), p = |α-β|    ↓ θ の訂正 [r, θ] 表  r = √{ {α(cos(θo) - φ}^2 + p^2 }  θ = θo + φ   : φ∈ [0, 2*cos(θo) ], θo = arcsin(p/α), p = |α-β| EXCEL シートにθ-列を乱立させており、錯誤の引用をしてました。 もっともらしいプロットのθが、このθ。 >「八の字ひげ」状のカーヴになりました。   

creampuff123
質問者

お礼

178-tallさん、どうもありがとうございます! 八の字ひげ状のカーブだと、違うと思うのです。 私の欲しいカーブは質問欄に追加した、手書きの図のようなイメージのものです。 円とβが触れる始点と終点の先をそれぞれ伸ばすと八の字ひげ状になるのかなー?とも思うのですが。私には定かではないです。。 教えて頂いたものを、さっと確かめることが出来たらいいのですが、 出来ていません。 色々やってみているのですが。。 どの様にすれば、図形が描けるか、 具体的に教えて頂けますでしょうか。 よろしくお願い致します。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.26

>ANo.25 >更なる錯誤あり。 >[r, θ] 表 > r = √{ {α(cos(θo) -φ}^2 + p^2 } > θ = ρ + φ >  : ρ = arcsin(p/r), p = |α-β| 算式の最終版らしいが、EXCEL では cos(θo) -φ が負になる領域にて通用しない。 負領域にて、ρ = (π/2) + arccos(p/r) と切り替えれば凌げる…。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.25

>ANo.23 >(算式には、まだ錯誤があるかも知れません。略図を描き追跡しながら吟味してみて…) 更なる錯誤あり。 >α < β <2α の場合。 >初期タッチしたあとの円板の回転角をφとして、下式により [r, θ] 表を作成しておく。 > r = √{ {α(cos(θo) -φ}^2 + p^2 } > θ = θo + φ    ↑ θ = θo + φ はカウント不足でした。 更に r の角振れを加算せねばならない。 [r, θ] 表  r = √{ {α(cos(θo) -φ}^2 + p^2 }  θ = ρ + φ   : ρ = arcsin(p/r), p = |α-β| ……   

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.24

>βの動きが違う気がします。 >円が回転して、円の軌跡がいくつもできたとしても、 >βは定点で、動いてはいけないので、1本になると思うのです。 βの位置は、図の中央部分の曲線が密集している1点で、動いてはいません。 質問欄の1~6の図を1つに重ね合わせれば、No.22と同じような図になってますね。

creampuff123
質問者

お礼

nag0720さん、ありがとうございます。 失礼致しました。 No22の下側の図で正解だと思います! >βは定点で、動いてはいけないので、1本になると思うのです。 よくよく考えると、そんなはずないです。大変失礼いたしました。 図を見ると、円の移動距離に応じた長さの、βとの接触軌跡が描かれていますので、 私の描きたいものは、この図です。 ですが、この図を私が描ければ良いのですが、 どうにも、描けれません。 VBをダウンロードしてみましたが、使い方が分かりませんでした。 使い方を載せているサイトをいくつか見たのですが、 プログラム言語を見るのが初めてで、わかりません。 もしよろしければ、具体的に教えていただけませんでしょうか。 よろしくお願い致します。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.23

>回答No.19 >(算式には、まだ錯誤があるかも知れません。略図を描き追跡しながら吟味してみて…) 案の定、錯誤あり。 円板上の座標 [r, θ] のθと、「初期タッチから円板がθだけ回転」のθとは区別せねばなりませんネ。 α < β <2α の場合。 初期タッチしたあとの円板の回転角をφとして、下式により [r, θ] 表を作成しておく。  r = √{ {α(cos(θo) -φ}^2 + p^2 }  θ = θo + φ   : θo = arccos(p/α), p = |α-β| EXCEL で強引に作図させてみると?  [0] まず 半径αの円。[α, θ] 表を [x, y] に変換して「散布図」表示。  [1] α < β <2α の場合、[r, θ] 表を [x, y] に変換して「散布図」表示。  [2] 0 < β < α の場合、[1] から [x, -y] にして「散布図」表示。 「八の字ひげ」状のカーヴになりました。 それにしても EXCEL って商売勘定専用の道具だなア、とつくづく実感…。   

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.22

こんな図でいいのかな。 VBで描いています。 計算式は、No.10の式を回転・平行移動したものです。

creampuff123
質問者

お礼

nag0720さんありがとうございます! 下側のα=100、β=80の図が私の欲しい図と似ていました。 βの動きが違う気がします。 円が回転して、円の軌跡がいくつもできたとしても、 βは定点で、動いてはいけないので、1本になると思うのです。 私の欲しい図のイメージを6コマにわけて、ペイントで作りました。軌跡は手書きです。 実際に円板を転がして、その先にペン先を固定させておいて軌跡を描くと、このようになりました。 このイメージのものを、手書きではなく作りたいです。 よろしくお願い致します。

関連するQ&A

  • 条件を満たす点の軌跡

    次の条件を満たす点の軌跡を表す方程式を求めよ。 1.点(-4,0)と直線x=4から等距離にある 2.点(0,2)と直線y=-2から等距離にある これは、y^2=4px という式を使うのでしょうか? それにしても、よくわかりません。

  • 円と軌跡、早めの解説お願いします!

    高校2年生です 2点A(-2,1)B(2,3)を通る直線lと円 C:x^2+y^2=1について (1)直線lの方程式 (2)点Pが円C上を動くとき、三角形ABPの重心Gの軌跡 (3)直線lに関して円Cと対称な円C´の方程式 (4)点D(-2,0)と直線l上の動点Qに対し、線分の和OQ+QDの最小値 明日のテストに出るみたいなんですが、(2)からがよく分かりません……(>_<) 軌跡とかは苦手です… 早めの解説をお願いします!

  • 点の軌跡の問題

    一辺 2cm の正方形の中を 1辺 1cm の正三角形が内接した状態で回転するとき、 また元の状態に戻ったときまでに移動した点 Aの軌跡の距離を求めよ。 という問題です。点Aはどんな軌跡を描くのでしょうか。 想像が付きません... この問題の解き方をご存知の方いらっしゃいましたら、ご指導お願いします。

  • 円の軌跡の問題です

    途中まで解けるのですが、行き詰まってしまいました。ヒントorアドバイスお願いします。 【問題】 直線x=2 の y>0 の部分を動く点Qから円 x^+y^=1 に2本の接線を引く。2つの接点を結ぶ線分の中点Pの軌跡を求めよ。 [途中式] Q(2,t)とする。 Qから円に引いた接点A(x壱,y壱),B(x弐,y弐)とする。 注)壱・弐は、本当はxの横に、小さい 1や2 を記入して、任意のx座標・y座標を表現したかったのですが、うまく文字で表せなかったので、今回は壱・弐を使用しました。 接点の方程式は x壱x+y壱y=1 x弐x+y弐y=1 2つ接点は共に点Qを通るから 2x壱+ty壱=1 2x弐+ty弐=1 これ以降がさっぱりわかりません。 途中式を細かくいれた説明を教えてください。 ちなみに下記の文章は、上記の解答の続きからの模範解答だそうです。 ・・・2つ接点は共に点Qを通るから 2x壱+ty壱=1 2x弐+ty弐=1 ゆえに、直線ABの方程式は 2x+ty=1・・・[ⅰ] 直線OPの方程式は y=t/2*x・・・[ⅱ] 点Pは直線ABと直線OPの交点である。 《1》x≠0のとき、[ⅱ]から t=2y/x これを[ⅰ]に代入して整理すると 2x^+2y^-x=0 ゆえに (x-1/4)^+y^=1/16 これから x>0 または t=2y/x>0 から y>0 《2》x=0 のとき [ⅱ]から y=0 点(0,0) は直線[ⅰ]上にない。 よって求める軌跡は 答え. 円(x-1/4)^+y^=1/16 の y>0の部分

  • 円の軌跡の問題です

    センター試験の問題です。Oを原点とする座標平面に置いて、点A(0,2)と点B(2,0)を結ぶ直線上に点(a,2-a)(ただし0<a<2)をとり、Pのx軸に関する対称点をP'とする。Pから直線OP'に引いた垂線が直線OP'と交わる点をHとする。 (1)直線OP'の式はy=(a-2)/a・x であり、a=1のとき直線ABとOP'は平行である。 (2)直線PHの式はy= - a/(a-2)・x + a^2/(a-2) +(2-a)である。 この直線PHは点Pのとりかたによらず定点C(2,2)を通るから。点Hは円(    )上にある。点Hのx座標が最小になるときHの座標は(     )である。 わからないのは、(2)なのですが、直線OP'と直線PHが垂直であることと、C(2,2)が定点であることから、直角三角形をつくってその斜辺の中点が求める円の中心の座標だと言うことはわかるのですが、今、直角三角形をつくるとき2点C,Hが決まっているだけなので、もう一点は無数に考えられますよね?解答では点OCHという直角三角形を選んでいるのですが、なぜひとつに決めることができるのでしょうか?お願いします。

  • 計測データを円フィッティングする方法について

    計測データを円フィッティングする方法について 添付図XY平面に赤い4点の計測点があります。理想ではXY軸上にそれぞれの点があり、(X,Y)=(0,0)を中心とする半径R=21.5の円上にあってほしいのですが、実際は図のようにズレて測定されました。 そこで、カーブフィットにより円の中心座標、半径、回転角αのパラメーターを求めたいです。なお計測上αは必ず生じるパラメーターです。 ご教授お願いします。

  • 円と軌跡

    次の【】をうめよ。 (1)方程式x^2+y^2+6x-10y-2=0を変形すると (x^2+6x)+(y^2-10y)=2 (x^2+6x+【】)+(y^2-10y+【】)=2+【】+【】 (x+【】)^2+(y-【】)^2=【】    これは点(【】、【】)を中心とする半径【】の円を表す。 (2)方程式x^2+y^2+4x+2=0を変形すると x^2+(y^2+4y+【】)=-2 x^2+(y^2+4y+【】)=-2+【】 x^2+(y+【】)^2=【】 これは点(【】、【】)を中心とする半径【】の円を表す。 っと言う問題なのですがこの変形が分かりません。 特に何で一段目から二段目になるのかがわかりません。 どなたか教えてください。m(-_-)m

  • 円と線分の共有点

    点P(x1, y1)と点Q(x2, y2)を通る直線と、中心のx座標、y座標、半径が分かっている円Oとの共有点を調べることは簡単ですが、線分PQと円Oの共有点を、図を描かずに計算で調べることは出来ますか? よろしくお願いします。

  • 空間図形ベクトルの問題です。

    二点A(1.2.-3)。B(2.-3,5)から、等距離にある点Pの作る図形の方程式をもとめよ。 この問題図をNET上にかけたらいいのですけど、、方法ってありますか???どなたか、、この問題の図をNET上に載せられたら書いていただけるとありがたいです>_<あと、もし方法あれば教えてください。。あと、3Dの図を描きたいのですけど、どなたか無料のソフトしってたら、教えていただきたいです。。 教科書の回答は 平面状では等距離にある点の軌跡は直線、空間では平面。P(x、y、z)とすると PA^2=PB^2から (X-1)^2+(y-2)^2+(z+3)^2=(x-2)^2+(y+3)^2+(z-5)^2 ∴x-5y+8z-12=0 質問1:平面状では等距離って意味がわかりません。、なので、軌跡は直線って意味も不明です。 空間では平面という部分も また、、この問題はなぜ、 PA^2=PB^2とするのですか? なぜ二乗の式=二乗の式にするのでしょうか? 誰か教えてください。よろしくお願いします>_<!!

  • 数学の問題がわかりません。

    3次元空間における点Pはx,y,zの直交座標系で成分(1,1,1)を持つとしたとき、原点と点Pを通る直線をLとする。 (i)点Pを通り、直線Lと垂直な平面をQとするときのQとxy平面の交線の式を求めよ (ii)点Pを通り、直線Lと30度の角度をなす直線を直線L周りに回転させる。 このとき、直線とxy平面の軌跡は楕円を描く。この楕円の中心を求めよ。 という問題なのですが、どう解けばいいかがわかりません。 どのように導入をするのか、式をつかえばいいかがわからないので 教えて頂きたいです。 よろしくお願いします。