我有一个 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();