2011年4月21日木曜日

トーラス2回転半ひねりっす

丸々1週間かかったっす。
算数の力がだいぶ衰えたみたいっすねえ…
どうもぺんぎんっす( ◎v◎ )


では成果っす。


これはin-worldのプリム変形では作れないカタチっす。
パラメータは
サイズ: X=0.500 Y=0.500 Z=0.500
穴寸法: X=1.00 Y=0.50
ひねり: B=900° E=0°
残りのパスカット、上部層、中空とかはデフォルトのままっす。
調子に乗って2回転半ひねったっす。
スクリプトから出力してるからこそ出来るっすね。

算数の話なので、分かればカンタンなんっすけどね。
トーラスを作る3つのステップは合ってたっす。
 1.楕円を作る
 2.平行移動する
 3.回転させる
ひねりの処理は1.と2.の間に入るっす。
楕円を回転させることが、ひねることになるわけっす。

楕円の回転で間違ってたっす。
昨日の記事を見てもらえば良いんっすけど、
 x=a・cosθ
 y=b・sinθ
っていう楕円を回転させるのに、θ→θ+ひねり分としてたっす。
つまり
 x=a・cos(θ+δ)
 y=b・sin(θ+δ)
とやってたわけっす。
θが0から2πまで動くところを、δから2π+δまで動かすだけっすから、
できる軌跡は同じになるっすよね。
やるならベクトルの大きさを三平方で求めて、さらに
x軸とのなす角をatanで出して、それを回転させ…
なくてもrotationを使って回転させれば良いっす。
atanとかを使った方法は、良い子は1度だけならやっても良いかもっす。
rotationを直接記述しても良かったんっすけど、llAxisAngle2Rot
っていう便利な関数があったので、それを使ったっす。


同じタイプのチューブやリングも似たような感じになると思うっす。
明日までに出来るっすかね?

0 件のコメント:

コメントを投稿

Free Avatar