저는 현재 WPF 주위에서 머리를 감싸려고 노력 중이며 Matrix3D 구조체로 좌표 공간을 변환하는 단계에 있습니다.WPF Matrix3D.Rotate() 함수가 좋지 않습니까?
WPF가 Point3D와 Vector3D 사이에 차이가 있다는 것을 깨닫고 나면 (번역본 2 시간 전 ...) 변환 매트릭스를 얻을 수 있습니다. 나는 이제 회전 행렬을 도입하려고 시도하고 있지만, 무서운 결과를주는 것으로 보인다. 여기 내 세계 좌표 변환에 대한 내 코드 ...
번역이 잘 작동 것으로 보인다private Point3D toWorldCoords(int x, int y)
{
Point3D inM = new Point3D(x, y, 0);
//setup matrix for screen to world
Screen2World = Matrix3D.Identity;
Screen2World.Translate(new Vector3D(-200, -200, 0));
Screen2World.Rotate(new Quaternion(new Vector3D(0, 0, 1), 90));
//do the multiplication
Point3D outM = Point3D.Multiply(inM, Screen2World);
//return the transformed point
return new Point3D(outM.X, outM.Y, m_ZVal);
}
, 90도 회전 그러나 부동 소수점 inaacuracies를 반환하는 것입니다. 행렬의 오프셋 행은 렌더링에서 앨리어싱을 생성하는 약간의 요인 (0.000001 또는 어느 쪽이든)에 의해 벗어나는 것처럼 보입니다. 여기서 누락 된 것이 있습니까? 아니면 매트릭스를 수동으로 라운드 할 필요가 있습니까? 심지어 배정 밀도 수학에
건배