新しく発言する EXIT インデックスへ
内サイクロイド2

  内サイクロイド2 ミミコ 2003/09/11 17:31:32 
  何をやりたいのか明確にしてください。 白石和夫 2003/09/11 18:17:57 
   └optionangledegrees ミミコ 2003/09/12 19:22:54 
    └サイクロイドの式を作りたいというときは,... 白石和夫 2003/09/12 20:18:06 
     └弧度法のままで考えて見ました。 ミミコ 2003/09/17 21:49:45 
      └プログラミングの問題というより,数学の問... 白石和夫 2003/09/17 22:01:28 
       └R=2rとする。 ミミコ 2003/09/19 17:20:20 
        └ベクトルCPを考えるとき,考えるべきことは... 白石和夫 2003/09/19 18:28:37 

  内サイクロイド2 ミミコ 2003/09/11 17:31:32  ツリーへ

内サイクロイド2 返事を書く
ミミコ 2003/09/11 17:31:32
こんにちは、この前は教えていただきありがとうございました。

今前の発言に、お返事をかく形で書かせて頂きましたが
新しい発言の形の方がいいかな、と思ったのでコピー
してこちらに書きます。


考えたのですが、よくわかりません。
媒介変数で円をかき、その中に接するように同様に
媒介変数で円をかくことまでしかできません・・・。

白石さんのおっしゃることは理解できるのですが、
どのように円を動かして、軌跡をかかせたらいいでしょうか。

また教えていただけたらうれしいです。

  何をやりたいのか明確にしてください。 白石和夫 2003/09/11 18:17:57  ツリーへ

Re: 内サイクロイド2 返事を書く
白石和夫 2003/09/11 18:17:57
何をやりたいのか明確にしてください。
軌跡を描けばよいのか,それだけでは満足できずに円を描いて円を動かしたいのか? 円を動かすのは,特殊なテクニックが必要になります。
軌跡の方程式の作り方が分からないのであれば,分かったこと(どこまで分かったか)をここに書き込んでください。要するに,両円の位置関係を単一の媒介変数で記述するのがポイントです。たとえば,抽象的な存在として時刻を想定してもいいです。どの部分の運動に注目しても式は作れそうですが,注目点を確立するのが2番目のポイントでしょう。

   └optionangledegrees ミミコ 2003/09/12 19:22:54  ツリーへ

Re: 何をやりたいのか明確にしてください。 返事を書く
ミミコ 2003/09/12 19:22:54
option angle degrees
set window -6,6,-6,6
draw grid
for t=0 to 360
plot lines:4*cos(t),4*sin(t);
next t
for a=o to 360
plot lines:2*cos(a),2*sin(a);
next a


set window -6,6,-6,6
draw grid
draw circle with scale(4)*shift(0,0)
draw circle with scale(2)*shift(2,0)
for x=2 to -2
set line color 3
next x

この二つを作ってみました。
1つ目は外円と内円のあいだ(X軸)に線がひかれるだけでした。

2つ目は、このかたちの状態で動かしたい、という円なのですが、媒介変数表示ではありません。
内円も原点中心になってしまうからです。

何がしたいのか、ということについて書きます。
軌跡が描きたいです。
本当は円を動かしたいのですが、私の知識では今は大変だと思うので・・・。

わからないことだらけのまったくの初心者ですが、
勉強していきますのでよろしくおねがいします。

    └サイクロイドの式を作りたいというときは,... 白石和夫 2003/09/12 20:18:06  ツリーへ

Re: optionangledegrees 返事を書く
白石和夫 2003/09/12 20:18:06
サイクロイドの式を作りたいというときは,弧度法が便利です。
半径rの円上を点Pが中心角でθラジアン動くと動いた弧の長さはrθです。角度の単位が度のままでもできないことはないけれど,面倒です。
次の設定で考えるのが楽です。
半径Rの円の内側を半径rの小円が転がる。小円上の動点Pの軌跡の方程式を作る。大円は原点が中心で,Pの最初の位置は点(R,0)だとしておく。そして,小円の中心と原点とを結ぶ動径がx軸の正の向きとなす角をθとして点Pの位置をθで表す。
なお,ベクトルで考えないと,面倒です。

     └弧度法のままで考えて見ました。 ミミコ 2003/09/17 21:49:45  ツリーへ

Re: サイクロイドの式を作りたいというときは,... 返事を書く
ミミコ 2003/09/17 21:49:45
弧度法のままで考えて見ました。

set window -5,5,-5,5
draw grid
for t=0 to 7 step 0.01
plot lines:cos(t),sin(t);
next t
end

が、原点中心ですが半径1の円になってしまいます。
白石さんのおっしゃることはだいたい理解できるのですが、「そして〜」以下がよくわかりません。

小円上の動点Pの軌跡はどのように考えたらよいでしょうか・・・。
紙に図は描けても、どのようなプラグラムをくんだらよいのか
が思いつかないです。





      └プログラミングの問題というより,数学の問... 白石和夫 2003/09/17 22:01:28  ツリーへ

Re: 弧度法のままで考えて見ました。 返事を書く
白石和夫 2003/09/17 22:01:28
プログラミングの問題というより,数学の問題です。
大円の半径をR,小円の半径をrとします。
大円の中心が原点Oで,小円の中心がC,小円上の動点をPとして,
角xOCが0のとき動点Pが円Oとx軸上の点A(R,0)で接していたとします。
そして,角xOCがθのとき,動径CPがx軸の正の向きとなす角を考えてください。(ここで,2円の接点をQとすると,弧AQの長さと弧PQの長さは一致することを使います。ここがポイント)
それがわかれば,ベクトルCPをθを用いて表せます。そして,ベクトルOP=ベクトルOC+ベクトルCPと考えれば,点Pの媒介変数表示がでてきます。

       └R=2rとする。 ミミコ 2003/09/19 17:20:20  ツリーへ

Re: プログラミングの問題というより,数学の問... 返事を書く
ミミコ 2003/09/19 17:20:20
R=2rとする。

弧AQ=Rθ、弧PQ=r×角QCP
つまりRθ=r×角QCP

角QCP=Rθ/r

角OCP=π+θ+Rθ/r=π+(r+R)θ/r

ベクトルOC=(rcosθ,rsinθ)
ベクトルCP=(−rcos(r+R)/r,−rsin(r+R)/r)

よって、x=rcosθ−rcos(r+R)/r
    y=rsinθ−rsin(r+R)/r


に、なりました。

ですが、3行目の『角OCP=π+θ+Rθ/r=π+(r+R)θ/r』が違うような気もします。

また、2行目の『角QCP=Rθ/r』は『角QCP=Rθ/r=2rθ/r=2θ』と、なるのではないかとも思います。

いかがでしょうか・・・。

        └ベクトルCPを考えるとき,考えるべきことは... 白石和夫 2003/09/19 18:28:37  ツリーへ

Re: R=2rとする。 返事を書く
白石和夫 2003/09/19 18:28:37
ベクトルCPを考えるとき,考えるべきことは,動径CPがx軸の正の向きとなす角です。動径CQがx軸の正の向きとなす角はθ,動径CPがx軸の正の向きとなす角は,動径CQがx軸の正の向きとなす角から角QCPを引いたものです。
なお,R=2rの場合を最初に描くのは避けたほうが無難です。(答えが特殊です)
また,BASICではrとRを区別しないので,プログラムに直すときは,たとえば,rとKのように一方を別の文字に変えてください。



インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。