如何初始化矩阵

时间:2016-06-14 07:41:02

标签: c#

如何使用System.Drawing.Drawing2D;

初始化矩阵

我试过这个:

private Matrix Rb = new Matrix (  );

但是当我需要这个矩阵时它给了我身份矩阵:

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

我怎样才能将这个矩阵用于使用反转旋转等功能?

2 个答案:

答案 0 :(得分:0)

Matrix matrix = new Matrix(m11, m12, m21,m22, dx,dy); 类封装了一个3乘3的仿射矩阵。

你可以这样开头:( https://msdn.microsoft.com/en-us/library/d0616edf(v=vs.110).aspx

floats

所有值均为m11

  • m12:新Matrix的第一行和第一列中的值。
  • m21:新Matrix的第一行和第二列中的值。
  • m22:新Matrix的第二行和第一列中的值。
  • dx:新Matrix的第二行和第二列中的值。
  • dy:新Matrix的第三行和第一列中的值。
  • public class Bill { String acc_no; String bill_no; String phone_no; int amount_; public Bill() { } public Bill(String acc_no, String bill_no, String phone_no, int amount_) { this.setAcc_no(acc_no); this.setBill_no(bill_no); this.setPhone_no(phone_no); this.setAmount_(amount_); } public Bill(String acc_no, String phone_no, int amount_) { this.acc_no = acc_no; this.phone_no = phone_no; this.amount_ = amount_; } public Bill(String acc_no, String bill_no, int amount_) { this.acc_no = acc_no; this.bill_no = bill_no; this.amount_ = amount_; } public Bill(String acc_no, int amount_) { this.setAcc_no(acc_no); this.setAmount_(amount_); } public String getAcc_no() { return acc_no; } public void setAcc_no(String acc_no) { this.acc_no = acc_no; } public String getBill_no() { return bill_no; } public void setBill_no(String bill_no) { this.bill_no = bill_no; } public String getPhone_no() { return phone_no; } public void setPhone_no(String phone_no) { this.phone_no = phone_no; } public int getAmount_() { return amount_; } public void setAmount_(int amount_) { this.amount_ = amount_; } :新Matrix的第三行和第二列中的值。

答案 1 :(得分:0)

您实际上无法在第3列中设置值。见here

  

在GDI +中,您可以在Matrix对象中存储仿射变换。因为矩阵的第三列代表仿射   转换总是(0,0,1),您只指定六个数字   在构造Matrix对象时的前两列中。

要设置前两列,请使用constructor overload并传入六个数字。