私はpyeuclidというライブラリを見つけましたが、3D 数学に関して私が望むことをしているようです。3D ベクター クラスと、回転、平行移動、拡大縮小などの変換が可能な 4X4 マトリックス クラスを継続します。
行列の作成は簡単です。引数を渡すだけで、行列が作成されます。
>>> m = Matrix4()
>>> m.translate(50,50,50)
Matrix4([ 1.00 0.00 0.00 50.00
0.00 1.00 0.00 50.00
0.00 0.00 1.00 50.00
0.00 0.00 0.00 1.00])
lbrary には 3D ベクトル クラスが付属しています。このマトリックスを使用して 3D ポイントを変換したい場合は、まずこのようにベクトル クラスを作成する必要があります。
>>> v = Vector3(100,200,300)
>>> v
Vector3(100.00, 200.00, 300.00)
>>> v.x
100
>>> v.y
200
>>> v.z
300
Matrix4() クラスには、座標を変換するメソッドが付属しており、そのように使用されます。
>>> m.transform(v)
Point3(150.00, 250.00, 350.00)
これは素晴らしいことですが、透視投影は適用されません。ライブラリには、Matrix4.new_perspective(fov_y、aspect、near、far) というメソッドが付属しています。そこに問題があります。この関数を適切に使用する方法がわかりません (m.transform(vector3) は使用可能なものを生成しません)。ドキュメントには、ベクトルや他の行列での使用方法が示されていません。 OpenGL は gluPerspective.fov_y を呼び出しますが、opengl を使用したことがないため、役に立ちません。
これはモジュールです(euclid import Vector3 、Matrix4 から)
私が望んでいないのは、いくつかのゲームエンジン/視覚化ライブラリの推奨事項、または画面に何かを描画することに傾倒しているものです.このライブラリを使用して3Dベクトル座標を2D画面座標に変換できるかどうかを知りたいだけです.どのライブラリを使用できますか???
そこに入って、苦しんでいる初心者を助けてください!:-) ご協力ありがとうございました。