Last updated: 2016 -2014. Kajiyama                    [ 目次に戻る ]

極座標系・円運動・振り子運動


  1. 基礎web学習

    wikipedia  ・極座標系  ・円運動    ・振り子

    わかりやすい高校物理の部屋  ・等速円運動・角速度・動径ベクトル  ・等速円運動の加速度  ・単振り子  ・単振り子の力学的エネルギー

    円運動・振り子運動の復習  ・力学 円運動  ・振動と回転


  2. Processingのキャンバスの2次元座標系

    (1) キャンバスの二次元の表示画面には,

      それぞれのピクセル(画素)の位置にXY座標が与えられている.

    (2) この座標系は,算数や数学で習ったものとはY軸の向きが違うので,

      注意が必要である.

    (3) 私の解説では1ピクセルの間隔を1mで扱っている.

      必要に応じて定義しなおすように.


  3. 円運動のコンピュータグラフィックス表現

    運動の物理学的表現・機械工学的表現とは同じでない.コンピュータグラフィックス風と思ってください.

    1. 位置 (x, y) の極座標系 (r,θ) での表現

      (1) 円運動では位置Pを中心からの半径 rと回転角度 θで表す.

        これを極座標 P(r,θ) と呼ぶ.θの単位はラジアン

      (2) 直交座標 P(x, y)と極座標 P(r,θ)の関係は,

        x = r*cosθ, y = r*sinθである.

      (3) X-Y平面で水平面や鉛直面を想定する.


      X-Y平面


      水平面と鉛直面
    2. 極座標系の角度・角速度・角加速度の復習

      物体の回転運動では角速度ωを用いる.単位はラジアン/秒.回転角度θを時間で微分した角速度ω=dθ/dtである.

      (1) Processingのフレームが変わるたびに,角速度はボールの位置・回転角度θを変えていく.1ピクセル = 1m,1フレーム = 1秒とする.

        角速度ωは1秒間に変化した回転角度θ(ラジアン/秒)である.

        1秒間に角度θがπ回転すれば,角速度ω = π(ラジアン/秒)

      (2) Processingのフレームが変わるたびに,角加速度αは回転の角速度ωを変えていく.

        角加速度αは1秒間に変化した角速度ω(ラジアン/秒)である.

        1秒間に角速度ωがπから3πに変化すれば,角加速度α = 3π-π = 2π(ラジアン/秒^2)


    3. 極座標系での平行移動,回転移動のプログラム表現

      Processingでは原点を中心にθ回転した時の,回転移動は,rotate (θ); で表現する.

      任意の位置(A,B)を中心にθ回転させるには,

      (1) translate(A, B);// まず座標軸の原点(0,0)を(A, B)に移動する.

      (2) rotate(θ);// 次に,原点(A, B)に移動した図形を(A, B)を中心にθ回転する.角度はラジアン


    4. 極座標系の円運動のプログラム表現

      (1) 角速度により変化した1秒後の回転した角度 θは,現在の角度θ = 以前の角度θ + 現在の角速度ω

      (2) 角加速度により変化した1秒後の角速度 ωは,現在の角速度ω = 以前の角速度ω + 現在の角加速度α


      (3) 角加速度が0の場合は角速度 ωは等速になり,等速円運動となる.

        等速円運動では,速度 v = r*ωの大きさ(速さ)は一定だが,向きが変わり常に速度は変化する.

        加速度は回転の中心に向かって生じ,向心加速度 a = r*ω^2 = v^2/r


    5. 角運動で円運動シミュレーションの解説

      3章 振動,"The Nature of Cord 自然現象のシミュレーション入門",Daniel Shiffman,岡利崇訳,ボーンデジタル,p85-117, 2014.


    6. 等速円運動--速度と位置の変化
      マウスボタンを押すと止まる
      
      
      
      // 等速円運動
      int length=0;// 直線の長さ,回転半径
      float angle = 0.0;// 回転角,角度はラジアン
      float angular_velocity = 0.1/60;// 角速度
      
      void setup() {
        size(300, 300);//キャンバスのサイズ
        background(255);//背景色
        length = width/2;// 直線の長さ,回転半径
        frameRate(60);//1秒間に画面を60回描画する
      }
      
      void draw() {
        background(255);//フレーム毎に,白く塗り以前の描画を消す
        stroke(255,0,0);//XY軸の線色を赤
        line(0, height/2, width, height/2);//水平軸
        line(width/2, 0, width/2, height);//鉛直軸
      
        //座標軸の原点(0,0)を画面中央に移動
        translate(width/2, height/2);
        rotate(angle);// 以下の図形を原点を中心に回転
      
        stroke(0);// 線の色 黒
        strokeWeight(2);//直線の太さをピクセル単位で
        line(0, 0, length, 0);// 回転する直線を描く
      
        angle = angle + angular_velocity;
      }
      
      void mousePressed() {
       exit();// マウスボタンを押すと止まる
      }
      

  4. 使用する関数

    1. 2次元図形の座標変換

      機能processingの関数単位はピクセル単位
      平行移動translate (x, y);X軸方向の移動量 (x)とY軸方向の移動量 (y)  
      回転移動rotate (angle);原点を中心に指定した回転角度(angle)で座標を回転,単位はラジアン


    2. 三角関数 trigonometric function

      機能processingの三角関数
      サイン 正弦関数sin(θ);
      コサイン 余弦関数cos(θ);
      タンジェント正接関数tan(θ);
      座標位置のラジアン角度atan2 ( x, y );//原点からの位置 ( x, y )

[ 目次に戻る ]