题目或有表述不清,
具体来讲,本人想要在VS 实现一个空间三维物体绕任意轴旋转,我现在的理解是,若要确定旋转轴,可以通过鼠标移动前一个位置,即前一个点Last和当前点Move确定的直线,垂直于该直线并过空间三维物体几何中心的线为旋转轴,若找以上所述,出现问题如下,因为鼠标Move过程中,不可能沿着一条直线,所以在Move过程中一定有旋转轴的变化,本人现在不知如何记录前一个点Last,当前点可用e.X /e.Y。
本人目前代码如下,应该是错误的:
private void PictureBox_MouseMove(object sender, MouseEventArgs e)
{
if(e.Button ==MouseButtons.Left )
{
MoveX = e.X;
MoveY = e.Y;
ProjectedTransform();
pictureBox.Invalidate();
lastX = e.X;
lastY = e.Y;
}
}
其中,ProjectTransform()为点投影函数,可不予理会