« MELでアスペクト計算 | トップページ | 新ゼルダ »

2010年9月17日 (金)

MEL → javaScript

せっかくなので、昨日作ったMELのスクリプトを、もっと一般的なjavaScriptに書き直してみました。これでしたらMayaがなくとも、普通のパソコンでウェブブラウザを使って利用することができます。javaScriptは久しく使っていなかったので、ネット上の記事を見て思い出しながら書きました。

前回の記事と比較して見てみるとわかるんですが、javaScriptとMELはほとんど一緒ですね(笑)。なので書き直すのにも全然時間がかかりませんでした。ただ、javaScriptでは多次元配列が使えないので、「配列の要素として配列を格納する」といったことをやる必要があり、ちょっとそこが面倒くさいところではあります。

<script type="text/javascript">
<!--
var ntl = [
   [0, 12, 21.0],
   [1, 3, 5.0],
   [2, 6, 14.0],
   [3, 5, 6.0],
   [4, 8, 19.0],
   [5, 6, 27.0],
   [6, 1, 11.0],
   [7, 8, 8.0],
   [8, 10, 16.0],
   [9, 3, 22.0]
];

var tst = [
   [0, 5, 14.0],
   [1, 11, 12.0],
   [2, 10, 26.0],
   [3, 6, 12.0],
   [4, 12, 9.0],
   [5, 9, 7.0],
   [6, 2, 1.0],
   [7, 2, 11.0],
   [8, 3, 22.0],
   [9, 8, 14.0]
];

var name = ["sun","moon","mercury","venus","mars","jupiter","saturn","uranus","neptune","pluto"];

var ntlB = new Array();
var tstB = new Array();

for(i = 0; i <10; i++) {
   ntlB[i] = new Array();
   ntlB[i][0] = ntl[i][2]+((ntl[i][1]-1)*30);
   tstB[i] = new Array();
   tstB[i][0] = tst[i][2]+((tst[i][1]-1)*30);
}

for(i = 0; i < 10; i++) {
   for(h = 0; h < 10; h++) {
      v = ntlB[i][0]-tstB[h][0];
      absV = Math.abs(v);
      if(absV > 180) {
         absV = 360-absV;
      }
      if(absV >= 0 && absV <= 5) {
         aspect = "Conjunction";
      }
      else if(absV >= 85 && absV <= 95) {
         aspect = "Square";
      }
      else if(absV >= 115 && absV <= 125) {
         aspect = "Trine";
      }
      else if(absV >= 175 && absV <= 185) {
         aspect = "Opposition";
      }
      else {
         aspect = "";
      }
    
      document.write(name[i]+"(N)-"+name[h]+"(T): "+absV+" "+aspect+"<br>");
   }
   document.write("<p>");
}
// -->
</script>

|
|

« MELでアスペクト計算 | トップページ | 新ゼルダ »

日記・コラム・つぶやき」カテゴリの記事