MEL_math

MEL Math


よく使うテンプレとか。
直接コマンドが無くて自前で計算させないといけないときの式とか?
プロシージャ書くときに書き方がスッキリするTipsとか?



Shapeノードを抽出するテンプレ


ちょいちょい使いたくなるのでメモ

string $objects[] = `ls -sl -type transform`;
string $shapes[] = `ls -dag -s $objects`;


MELにはfloor()っていう小数点以下切捨てのコマンドがあるのですがそれ以外無いんで分かりやすい応用。

四捨五入


float $float = 3.141592;
floor($float+0.5);
//result : 3

似たような奴…

任意の桁で切捨て


10の位で切り捨て
float $float = 1234.5678;
float $result = `floor(float * 0.1)`*10;
print $result;
1230

絶対値



返り値が配列のコマンドから最初の値だけを呼び戻す


最初の値目当てでもいちいち返り値がArrayになって返ってくるQueryコマンドが多い。
変数を呼ぶときにいちいち$hensu[0]って付けるのもメンドクサイし整理しづらいのでこの方法を…

proc string stripString(string $array[]){
    string $result = $array[0];
    return $result;
}


というprocを用意しておく。で、元のコマンドのほうでは…

string $name = stripString(`ls -sl`);
                              ↑
                   返り値が配列になるコマンド

と記述すれば一行で欲しい名前だけを単体の文字列として取得できる。
とりあえずぶっこんどくと地味に便利なコマンドになると思います。


配列の順番をランダマイズするプロシージャ


配列(今は文字列用)を与えると順番をシャッフルして返すプロシージャ。
地味に応用が利くと思うよ。

proc string[] randOrder(string $original[]){
	string $tmp[] = $original;
	string $randOrder[];
	
	int $i;
	for($i = 0; $i < size($original);$i++){
		int $pick = rand(size($tmp));
		$randOrder[$i] = $tmp[$pick];
		stringArrayRemoveAtIndex($pick,$tmp);
	}
	return $randOrder;
}



  • 数学の話なんだけど、sinカーブの山のピーク(タイミング)をやや不規則にズラすのって数式的にはどう書けばいいんだっけ…出来るっけ?ってか意味分からないよね多分。 -- kingeggman (2010-12-26 15:43:01)
  • ん~ちょっとイメージわかない -- 9boz (2010-12-28 17:41:57)
  • θの増加量をリニアじゃなくすればずれるんじゃないかな http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Sin_and_cos.png -- 9boz (2010-12-28 17:44:21)
名前:
コメント:
最終更新:2010年12月28日 17:44
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。