public void Move(int x, int y) { transformMatrix = transformMatrix.Mul( new HMatrix( 1, 0, 0, 0, 1, 0, x, y, 1)); }
public void Move(int x, int y) { transformMatrix = transformMatrix.Mul( new HMatrix( 1, 0, 0, 0, 1, 0, x, y, 1)); }
public void Scale(double z1, double z2) { transformMatrix = transformMatrix.Mul( new HMatrix( z1, 0, 0, 0, z2, 0, 0, 0, 1)); }
private HPoint TransformPointRelative(HPoint p) { var t = new HMatrix(transformMatrix); t[2, 0] = 0; t[2, 1] = 0; return(t.Mul(p)); }
public void Rotate(int rotate) { var a = -rotate / 180.0d * Math.PI; transformMatrix = transformMatrix.Mul( new HMatrix( Math.Cos(a), -Math.Sin(a), 0, Math.Sin(a), Math.Cos(a), 0, 0, 0, 1)); }
public bool Equals(HMatrix m) { for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { if (this[x, y] != m[x, y]) return false; } } return true; }
public bool Equals(HMatrix m) { for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { if (this[x, y] != m[x, y]) { return(false); } } } return(true); }
public HMatrix Mul(HMatrix by) { var result = new HMatrix(); var r = result.values; var a = this.values; var b = by.values; r[0, 0] = a[0, 0] * b[0, 0] + a[0, 1] * b[1, 0] + a[0, 2] * b[2, 0]; r[0, 1] = a[0, 0] * b[0, 1] + a[0, 1] * b[1, 1] + a[0, 2] * b[2, 1]; r[0, 2] = a[0, 0] * b[0, 2] + a[0, 1] * b[1, 2] + a[0, 2] * b[2, 2]; r[1, 0] = a[1, 0] * b[0, 0] + a[1, 1] * b[1, 0] + a[1, 2] * b[2, 0]; r[1, 1] = a[1, 0] * b[0, 1] + a[1, 1] * b[1, 1] + a[1, 2] * b[2, 1]; r[1, 2] = a[1, 0] * b[0, 2] + a[1, 1] * b[1, 2] + a[1, 2] * b[2, 2]; r[2, 0] = a[2, 0] * b[0, 0] + a[2, 1] * b[1, 0] + a[2, 2] * b[2, 0]; r[2, 1] = a[2, 0] * b[0, 1] + a[2, 1] * b[1, 1] + a[2, 2] * b[2, 1]; r[2, 2] = a[2, 0] * b[0, 2] + a[2, 1] * b[1, 2] + a[2, 2] * b[2, 2]; return(result); }
public void Scale(double z1, double z2) { transformMatrix = transformMatrix.Mul( new HMatrix( z1, 0, 0, 0, z2, 0, 0, 0, 1)); }
public void Rotate(int rotate) { var a = -rotate / 180.0d * Math.PI; transformMatrix = transformMatrix.Mul( new HMatrix( Math.Cos(a), -Math.Sin(a), 0, Math.Sin(a), Math.Cos(a), 0, 0, 0, 1)); }
public Transformer() { transformMatrix = new HMatrix(HMatrix.Identity); }
private HPoint TransformPointRelative(HPoint p) { var t = new HMatrix(transformMatrix); t[2, 0] = 0; t[2, 1] = 0; return t.Mul(p); }
public HMatrix Mul(HMatrix by) { var result = new HMatrix(); var r = result.values; var a = this.values; var b = by.values; r[0, 0] = a[0, 0] * b[0, 0] + a[0, 1] * b[1, 0] + a[0, 2] * b[2, 0]; r[0, 1] = a[0, 0] * b[0, 1] + a[0, 1] * b[1, 1] + a[0, 2] * b[2, 1]; r[0, 2] = a[0, 0] * b[0, 2] + a[0, 1] * b[1, 2] + a[0, 2] * b[2, 2]; r[1, 0] = a[1, 0] * b[0, 0] + a[1, 1] * b[1, 0] + a[1, 2] * b[2, 0]; r[1, 1] = a[1, 0] * b[0, 1] + a[1, 1] * b[1, 1] + a[1, 2] * b[2, 1]; r[1, 2] = a[1, 0] * b[0, 2] + a[1, 1] * b[1, 2] + a[1, 2] * b[2, 2]; r[2, 0] = a[2, 0] * b[0, 0] + a[2, 1] * b[1, 0] + a[2, 2] * b[2, 0]; r[2, 1] = a[2, 0] * b[0, 1] + a[2, 1] * b[1, 1] + a[2, 2] * b[2, 1]; r[2, 2] = a[2, 0] * b[0, 2] + a[2, 1] * b[1, 2] + a[2, 2] * b[2, 2]; return result; }
public HMatrix(HMatrix source) : this() { Array.Copy(source.values, this.values, source.values.LongLength); }
public HMatrix(HMatrix source) : this() { Array.Copy(source.values, this.values, source.values.LongLength); }
public Transformer() { transformMatrix = new HMatrix(HMatrix.Identity); }