2
私はpygletを使用してpythonで3D視覚化を行っており、いくつかのピッキングを行うためにモデルビューと投影行列を取得する必要があります。glGetFloatvを使用してpygletのmodelview行列を取得する
from pyglet.gl import *
from pyglet.window import *
win = Window(fullscreen=True, visible=True, vsync=True)
私はその後、私の窓のすべてのイベントを定義します:私はクリックすると
@win.event
def on_draw():
# All of the drawing happens here
@win.event
def on_mouse_release(x, y, button, modifiers):
if button == mouse.LEFT:
# This is where I'm having problems
a = GLfloat()
mvm = glGetFloatv(GL_MODELVIEW_MATRIX, a)
print a.value
は、それが印刷されます...
1.0
Segmentation fault
とクラッシュ私が使用して私の窓を定義します。 GL_MODELVIEW_MATRIXを使ってglGetFloatvを呼び出すと、16個の値が返されるはずです。私は= GLfloat * 16を定義しようとしましたが、次のエラーが表示されます。
ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: expected LP_c_float instance instead of _ctypes.PyCArrayType
これらの行列はどのように取得できますか?
完璧に作業しました、ありがとうございます。 – user1223904
あなたは?の16の要素の解釈を共有できますか?どの要素が何を表していますか? – vipin8169
コラムメジャー、私の理解ごとに。最初の4つは行列の最初の列です。 –