振り子備忘録

0
    //speed=速度
    //a=加速度
    //friction=摩擦
    //rotation=角度(求めたい値)
    として

    var speed=0;
    var a=0.02;
    var friction=0.95;

    以下毎フレーム処理
    speed+=-rotation*a;
    rotation+=speed;
    speed*=friction;

    球体の半径、緯度、経度からxyz座標を算出する方法

    0
      radius=半径
      longitude=経度
      latitude=緯度
      のとき

      y=distance*Math.cos(latitude*Math.PI/180)
      dist=distance*Math.sin(latitude*Math.PI/180)
      x=dist*Math.cos(longitude*Math.PI/180)
      z=dist*Math.sin(longitude*Math.PI/180)

      但し実際の経度とプログラム上の回転方向は逆なので注意。
      また、longitude=0は右を向く点も注意。


      評価:
      Keith Peters
      ボーンデジタル
      ¥ 7,560
      (2007-10-30)


      Math関数性格診断

      0
        Math.tan

        通称末っ子。Math.sinやMath.cosと並ぶ三角関数三兄弟でありながら、二人の優等生兄を前にその存在感は薄い。小学校も中学校も兄弟の学力を引き合いに出され、根拠のない期待が寄せられる反面、家庭では放置気味に育てられ、性格は甘えん坊。その用途もいまいち曖昧。そもそも「一辺の長さと角度(ラジアン)から、もう一方の辺の長さを求める」状況がどこで出てくるのか分からない。座右の銘は「頑張らない勇気」。


        Math.atan

        通称エーたん。名前は可愛いがその正体は腹黒い。実は、末っ子が極端な反抗期を迎えた結果という説もある。アークタンジェントという言葉も、ダークサイドにちょっと似ている。徹底的にあまのじゃくな性格で、他人の意見にはことごとく反論。ネガティブな言動で周囲をいらだたせる。しかし従兄弟の「Math.atan2(エーたんたん)」はわりと友好的。XY座標から角度を求めてくれる。



        Math.PI

        通称パイ君。3.14から3になったり戻ったり、ゆとり教育に翻弄されたことで有名。「ゆとり世代をバカにする人はそもそも、ゆとり政策に賛成した有権者だろうが!」という、ゆとりの持論も有名。実際はもっと細かい位までの値を持つπだが、ロケットを飛ばすわけではないので3.14でじゅうぶん。むしろ「Math.PI」と入力するより「3.14」と入力するほうが文字数が少なくすむ点で不遇。



        Math.round

        通称四捨五入ちゃん。三姉妹の次女。竹を割ったような性格で優柔不断が大キライな彼女は、関数界の蓮舫のごとく右へ左へと仕分けするのが大得意。せっかく皆でがんばって細かい数値まで計算しても「見づらいから略しておいてあげたわ」と余計なお節介をするからたまったもんじゃない。そんな彼女はおおむね生産ライン最後の箱詰め担当。ピクセルやフレームにぴっちり揃える仕事から彼女を出世させプログラムのコアな計算に配属しようものなら、飛ぶミサイルも飛ばなくなるので注意が必要。



        Math.sqrt

        通称ルートくん。人並におごるのが信条の彼は、あらゆるシチュエーションで人並以上に大活躍。とりわけ2点の座標から距離を算出する時のカッコよさときたら、芝の目を読む石川遼くんさながら。気配りできるイケメンでありながら、どう発音するのか分からない点だけがなんとも残念。スカート?スクワット?スクルト?守備力高い系?富士山麓にオウムが鳴いてみたところで、答えは見つからない。


        Math.random

        通称ランダムくん。持論があるように見えて毎回違うことを言う典型的なAB型。四捨五入ちゃんとの相性はサイアクに思えるが、プログラムの世界では意外にベストカップル。片方があまりはっきりした意見をもたないほうが何事もうまくいくのは、現実世界でも同じかもしれない。



        Math.abs

        通称エビスちゃん。絶対的なまでのプラス思考で周囲を明るくするムードメーカー。関数界のローラと呼ばれる彼女にネガティブな相談をしようものなら「よくわかんないけどー、たぶんゼッタイ大丈夫だよー?」と無根拠に励まされるだけなので糠に釘。あらゆるマイナスを払拭してしまうため文字通り摩擦は生じないが、深く付き合うのはダメ、絶対!適度に距離をとる、あるいは距離だけを算出する程度の仲に留めたい。好きなビールメーカーはSAPPORO。



        スクロールバーとスクロールエリアの関係

        0
           スクロールバーを自作する場合に便利な公式。

          スクロールエリアの高さをA
          スクロールするオブジェクトの高さをB
          スクロールバーの全体の高さをb
          とるすとき、スクロールバー本体の高さaは
          a=b*A/B

          オブジェクトがスクロールする範囲Hは
          H=B-A
          スクロールバーがスクロールする範囲hは
          h=b-a

          スクロールバーの位置をyとするとき、
          オブジェクトの位置Yは
          Y=-(H*y/h)

          また、スクロールバーの位置yは
          y=-(h*Y/H)






          配列を五十音順にソートする

          0
            文字列を五十音順(辞書順)にソートするには、sort()を使用する。

            var array=["いぬ","さる","きじ"];
            array.sort();

            しかし、これだと文字列の配列しかソートできない。そこで

            var array=[{name:"いぬ"},{name:"さる"},{name:"きじ"}];
            array.sort(function(a,b){return (a.name > b.name)? 1:-1});

            このようにすると、オブジェクトの配列も辞書順で評価できた。



            角度からラジアン、ラジアンから角度

            0
              角度をdegree、ラジアンをradianとした場合、

              degree=radian/Math.PI*180;
              radian = degree*Math.PI/180;

              でそれぞれ求められる



              2点間の距離や角度の求め方

              0
                 obj1とobj2の、2点間のx座標の距離がX、y座標の距離がYのとき、各値の求め方

                var obj1;
                var obj2;
                var x=obj2.x-obj1.x;
                var y=obj2.y-obj1.y;

                2点間の距離
                var distance= Math.sqrt(x*x+y*y);

                2点間の角度(ラジアン)
                var radian=Math.atan2(y,x);

                逆に、距離と角度から座標を求める場合
                x=Math.cos(radian)*distance
                y=Math.sin(radian)*distance




                | 1/1PAGES |

                selected entries

                categories

                archives

                recent comment

                recommend

                profile

                BOOKS

                links

                search this site.

                others