0

私は遊んでいSystem.Drawing.Drawing2D.Matrixて、指定されたベクトルでポイントを移動する方法を理解するのに苦労しています。たとえば、変換後にポイントが座標を持つように、ポイントをベクトルMatrixで移動するために使用したいと思います。ただし、次のコードは機能していないようですが、ポイントにはまだ原点座標があります(おそらくここで基本的なものが欠落しています)。(1,1)(2,2)(3,3)

var point = new PointF(1F, 1F);
var matrix = new Matrix();
matrix.Translate(2F,2F);            
matrix.TransformPoints(new[]{point});

適切な変換がどのように見えるかを誰かが説明できますか?

4

1 に答える 1

2

これは、新しいオブジェクトをに渡しておりTransformPoints、最終的には失われるためです。

コードを次のように変更してみてください

var point = new PointF(1F, 1F);
var matrix = new Matrix();
matrix.Translate(2F,2F);         
PointF[] aPoints = { point };   
matrix.TransformPoints(aPoints);

point = aPoints[0];

最後の行の変更に注意してください。

于 2012-04-30T15:52:00.993 に答える