1

Ax+By+Cz d=0 形式の平面方程式があります。その平面に四角形を描くことができます。マウスポイントを使用して、その平面に描画したいと思います。そのために、マウスポイントから平面上のポイントを取得しようとしています。そのために、カメラからそのマウスポイントを通過する平面への光線を作成しています。しかし、レンダリングしようとすると、正しい場所に配置されません。

私はこの方法でクワッドを描いています: OpenGL.glPushMatrix();

            OpenGL.glMultMatrix(mTransform);

            OpenGL.glColor(Color.FromArgb(60, Color.BlanchedAlmond));

            OpenGL.glPushMatrix();
            Matrix4 transform = Matrix4.Identity;
            Quaternion planeRotation = Vector3.ZAxis.GetRotationTo(mMarkUpPlane.Normal);
            Vector3 planeOrigin = mMarkUpPlane.Normal * -mMarkUpPlane.D;

            transform.Matrix3 = planeRotation.GetRotationMatrix();
            transform.Translation = planeOrigin;
            OpenGL.glMultMatrix(transform);

            const double PlaneWidth = 1500;

            OpenGL.glBegin(OpenGL.GL_QUADS);

            OpenGL.glVertex3d(PlaneWidth, PlaneWidth, 0.0);
            OpenGL.glVertex3d(PlaneWidth, -PlaneWidth, 0.0);
            OpenGL.glVertex3d(-PlaneWidth, -PlaneWidth, 0.0);
            OpenGL.glVertex3d(-PlaneWidth, PlaneWidth, 0.0);

            OpenGL.glEnd();
            OpenGL.glPopMatrix();
            OpenGL.glPopMatrix();
4

0 に答える 0