跪求 D3D 鼠标选中的模型鼠标控制移动的代码
刚学DirectX,跪求,知道这边全是高手,现在可是鼠标选中模型。可是不知道怎么用鼠标控制它一定
之前看过人人家的帖子,但是都是高手的思路。没看明白。米代码
小弟跪求代码一段
这个是鼠标选中模型的C#代码段:
private Matrix meshPosition;private Mesh meshObj;private void panel1_MouseMove(object sender, MouseEventArgs e) { //计算摄像机投影窗口上对应的点击位置坐标 Vector3 SVector = new Vector3(); SVector.X = 2 * (float)e.X / this.panel1.ClientSize.Width - 1; SVector.Y = -2 * (float)e.Y / this.panel1.ClientSize.Height + 1; SVector.Z = 1.0f / (float)Math.Tan(Math.PI / 8); //视图矩阵 Matrix viewMatrix = device.Transform.View; viewMatrix.Invert();//计算视图矩阵的逆矩阵 //射线位置 Vector3 rayPos = Vector3.TransformCoordinate(SVector, viewMatrix); //射线方向 Vector3 rayDir = Vector3.Subtract(rayPos, CamPostion); //碰撞检测 //将模型的世界矩阵进行逆变换 Matrix inverseWorld = Matrix.Invert(meshPosition); Vector3 localRayPos = Vector3.TransformCoordinate(rayPos, inverseWorld); Vector3 localRayDir = Vector3.TransformNormal(rayDir, inverseWorld); bool result = meshObj.Intersect(localRayPos, localRayDir);