/// <summary> /// Vector3x1 /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static Vector1x3 operator *(Vector1x3 a, Matrix3x3 b) { Vector1x3 v = new Vector1x3(0, 0); v._11 = (a._11 * b._11 + a._12 * b._21 + a._13 * b._31); v._12 = (a._11 * b._12 + a._12 * b._22 + a._13 * b._32); v._13 = (a._11 * b._13 + a._12 * b._23 + a._13 * b._33); return(v); }
/// <summary> /// Matrix3x3 /// </summary> /// <param name="ln1"></param> /// <param name="ln2"></param> /// <param name="ln3"></param> public Matrix3x3(Vector1x3 ln1, Vector1x3 ln2, Vector1x3 ln3) { _11 = ln1._11; _21 = ln1._12; _31 = ln1._13; _12 = ln1._11; _22 = ln1._12; _32 = ln1._13; _13 = ln1._11; _23 = ln1._12; _33 = ln1._13; }
/// <summary> /// Move /// </summary> public void Move(Matrix3x3 t) { position = position * t; }
/// <summary> /// Konstruktor /// </summary> public Point2D(Vector1x3 inPosition) { position = inPosition; }
/// <summary> /// GetUV /// </summary> /// <param name="v"></param> /// <returns></returns> public static PointF GetUVF(Vector1x3 v) { return(new PointF(v._11 / Xmax * Umax, Vmax - (v._12 / Ymax * Vmax))); }
/// <summary> /// GetUV /// </summary> /// <param name="v"></param> /// <returns></returns> public static Point GetUV(Vector1x3 v) { return(new Point((int)Math.Round(v._11 / Xmax * Umax), (int)Math.Round(Vmax - (v._12 / Ymax * Vmax)))); }