3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

配列内をランダムに抽出

今までMarkdown記法を使っていたのですが、
はてな記法に戻しました。

そしてSyntax Highlighterを使うのをやめようかと…
はてな独自のを使っていく方向で。

理由は相性が悪いなーと。
Syntax Highlighter内にはてなのリンクが勝手に貼られたりしちゃったり、
勝手に変なタグが入っちゃったりしたので。

ひとまずははてな記法のを使っています。

では本題へ。

今回はMELです。
古いMAYAではPythonが使えないのでMELで記述する必要がありました。

今回はいろんなサイトを参考にして、
選択した頂点からランダムに頂点を指定した数だけ選択するスクリプトです。

というかアルゴリズムって知ってて損はないね…
調べずにやったらいろいろ馬鹿みたいにif文でやってしまいそうでした。

アルゴリズムも勉強しておこう。

//選択したVertexを取得 
$selectVtxs = `ls -sl -fl`;

//ランダムに選択する数
int $num = 100;

string $randomVtxs[];
select -cl;
for($i=0; $i < $num; $i++){
	int $randSize = rand(0,size($selectVtxs)- $i);
	$randomVtxs[$i] = $selectVtxs[$randSize];
	$selectVtxs[$randSize] = $selectVtxs[size($selectVtxs)-1 - $i];
}
select $randomVtxs;
clear $randomVtxs;