WPF 변환 클래스에 대한 나의 이해는 Matrix 클래스 represents a 3x3 row-major matrix of 2D homogenised coordinates where the final column is always(0,0,1)
입니다. 이 디자인의 이유는 2x2 행렬을 사용하는 경우 벡터와는 별도로 변환하지 않고 변환을 회전, 크기 조정 및 기울이기와 같은 방식으로 변환을 행렬 곱셈으로 쉽게 사용할 수 있다는 것을 이해합니다.Vector.Multiply는 행렬의 오프셋 값을 무시합니다.
내 기대 따라서 번역이 포함 된 매트릭스로 multiplyingVector 때 내 기대 그러므로, 결과 벡터 번역해야합니다. WPF 행렬 클래스를 사용할 때 이런 일이 일어나지 않는 것 같습니다. 그래서 내가 뭘 잘못하고있는 걸까요?
Matrix m = new Matrix();
m.Translate(12, 34);
Vector v = new Vector(100, 200);
Vector r = Vector.Multiply(v, m);
// Confirm that the matrix was translated correctly
Debug.WriteLine(m);
// Confirm that the vector has been translated
Debug.WriteLine(r);
결과 :
1,0,0,1,12,34 // Matrix contains translation as expected
100,200 // Vector is unchanged - not expected
그래, 그렇지만 자신의 질문에 답하는 것이 즐겁지 않습니까? –
예, 좋습니다. 그것은 다른 사람들이 시간을 허비하지 않고 다른 사람들이 같은 문제를 겪을 때 도움이됩니다. –