Python (線形変換 2)

後期課題

  1. Objファイルを読み込んで、オブジェクトを移動、回転、スケールすることのできるlenear2.pyを作成してみましょう。
    実行時のオプションは以下の通りです。
    -t x y z
    頂点を、現在の位置から(x, y, z)だけ移動
    -r x y z
    頂点を、現在の位置から(x, y, z)だけ回転(単位は度)
    -s x y z
    頂点を、現在の位置から(x, y, z)だけスケール
    -p x y z
    回転•スケールの中心(ピボット)を(x, y, z)にする
    このオプションが、省略されたときは中心を(0, 0, 0)にします。

    cube1.objを(1, 2, 3)だけ現在の座標から移動します。
    # python lenear2.py -t 1 2 3 cube1.obj cube4.obj

    cube1.objを原点中心にX軸中心に30度、 Y軸中心に60度、Z軸中心に45度回転されたデータがcube3.objに出力されます。

    # python lenear2.py -r 30 60 45 cube1.obj cube3.obj
    cube1.objを原点中心にX方向に2倍、Y軸方向に3倍、Z軸方向に4倍したデータがcube5.objに出力されます。
    # python lenear2.py -s 2 3 4 cube1.obj cube5.obj

    cube1.objを点(1, 3, 2)を中心にX軸中心に60度、 Y軸中心に45度、Z軸中心に60度回転されたデータがcube6.objに出力されます。
    # python lenear2.py -p 1 2 3 -r 60 45 30 cube1.obj cube6.obj

    cube1.objを点(3, 2, 1)を中心にX方向に3倍、Y軸方向に5倍、Z軸方向に2倍したデータがcube7.objに出力されます。
    # python lenear2.py -p 3 2 1 -s 3 5 2 cube1.obj cube7.obj

参考


Prev
index | home
abetmhr@gmail.com