3Dタートルグラフィックス - KAME3D???
ガラクタ置き場に、KAME3D???(3次元タートルグラフィックライブラリー)の例題を3個置きました。
(いずれもマウスの動きに反応します。反応がないときには、アプレットウィンドウをクリックして叩き起こしてね)
だいぶ前に作った二次元版にちょっと手を加えただけでできた。(ここがProce55ingのいいところ)
void setup(){ <-最初に一回だけProce55ingから呼ばれる関数
void draw() { <-フレーム描画ごとにProce55ingから呼ばれる関数
void nibunki(float hosuu) {<-長さが(hosuu)の二分樹の描き方(この例題用の関数)
size(400,300,P3D); <-窓サイズと3Dモードの設定(Proce55ingの関数)
}void draw() { <-フレーム描画ごとにProce55ingから呼ばれる関数
kami(0); <-黒い色の新しい紙(KAME3Dコマンド)
saisho(200,300,-180); <-最初の位置(200,300)と向き(-180°=後向)(KAME3Dコマンド)
nibunki(300); <-長さ300の二分樹を描く(この例題用の関数)
}saisho(200,300,-180); <-最初の位置(200,300)と向き(-180°=後向)(KAME3Dコマンド)
nibunki(300); <-長さ300の二分樹を描く(この例題用の関数)
void nibunki(float hosuu) {<-長さが(hosuu)の二分樹の描き方(この例題用の関数)
if (hosuu < 3) { <-もしhosuuがちょびっと(3未満)だったら・・・(Java構文)
}
mae(hosuu); <-(線を書きながら)前にhosuu分進む(KAME3Dコマンド)
} else { <-そうでなければ・・・
migisita(mouseX); <-マウスX座標°だけ右下方向に傾いて(KAME3Dコマンド)
mae(hosuu*1/3); <-前にhosuuの三分の一進む(KAME3Dコマンド)
koko(); <-現在の場所と向きを覚える(KAME3Dコマンド)
hidari(mouseY/5); <-マウスY座標の五分の一°だけ左を向く(KAME3Dコマンド)
nibunki(hosuu*2/3); <-hosuu*2/3の長さの二分樹を描く(この例題用の関数)
sakki(); <-さっき覚えていた場所と向きに戻る(KAME3Dコマンド)
migi(45); <-45°だけ右を向く(KAME3Dコマンド)
nibunki(hosuu*3/5); <-hosuu*3/5の長さの二分樹を描く(この例題用の関数)
}mae(hosuu*1/3); <-前にhosuuの三分の一進む(KAME3Dコマンド)
koko(); <-現在の場所と向きを覚える(KAME3Dコマンド)
hidari(mouseY/5); <-マウスY座標の五分の一°だけ左を向く(KAME3Dコマンド)
nibunki(hosuu*2/3); <-hosuu*2/3の長さの二分樹を描く(この例題用の関数)
sakki(); <-さっき覚えていた場所と向きに戻る(KAME3Dコマンド)
migi(45); <-45°だけ右を向く(KAME3Dコマンド)
nibunki(hosuu*3/5); <-hosuu*3/5の長さの二分樹を描く(この例題用の関数)
こんだけ