2016-06-14 20 views
0

Wie kann ich eine Matrix mit System.Drawing.Drawing2D initialisieren;Wie initialisiert man eine Matrix

Ich versuchte dies:

private Matrix Rb = new Matrix (); 

aber es mir geben Sie die Identität Matrix gerade, während ich diese Matrix benötigen:

(a, 0 ,0; 0 , a,0, 0,0,a) 

Wie kann ich diese Matrix itnitialise die die Möglichkeit haben, Funktionen zu nutzen wie Invert rotieren usw.?

+1

die anderen Überlastungen Versuchen. https://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix(v=vs.110).aspx –

+0

Sie können die Werte in der dritten Spalte tatsächlich nicht festlegen. – TaW

Antwort

0

Sie können die Werte in der dritten Spalte tatsächlich nicht festlegen. Siehe here:

In GDI + können Sie eine affine Transformation in einem Matrix-Objekt speichern. Da die dritte Spalte einer Matrix, die eine affine Transformation darstellt, immer (0, 0, 1) ist, geben Sie beim Erstellen eines Matrixobjekts nur die sechs Zahlen in den ersten beiden Spalten an.

Um die ersten beiden Spalten Sie die constructor overload mit sechs Zahlen verwenden gesetzt in zu übergeben.

0

Die Klasse Matrix kapselt eine 3-mal-3-affine Matrix ein.

Und Sie können es so initialisieren: (https://msdn.microsoft.com/en-us/library/d0616edf(v=vs.110).aspx)

Matrix matrix = new Matrix(m11, m12, m21,m22, dx,dy); 

Alle Werte sind floats

  • m11: Der Wert in der ersten Zeile und erste Spalte der neuen Matrix.
  • m12: Der Wert in der ersten Zeile und zweiten Spalte der neuen Matrix.
  • m21: Der Wert in der zweiten Zeile und ersten Spalte der neuen Matrix.
  • m22: Der Wert in der zweiten Zeile und zweiten Spalte der neuen Matrix.
  • dx: Der Wert in der dritten Zeile und ersten Spalte der neuen Matrix.
  • dy: Der Wert in der dritten Zeile und zweiten Spalte der neuen Matrix.
Verwandte Themen