//-------------------------------------------------- // 2D //-------------------------------------------------- public static Vector2 GetPoint2D(Vector2 vOrg, Vector2 vMid, Vector2 vDst, float t) { float fX = (1-t) * (1-t) * vOrg.x + 2 * (1-t) * t * vMid.x + t * t * vDst.x; float fY = (1-t) * (1-t) * vOrg.y + 2 * (1-t) * t * vMid.y + t * t * vDst.y; return new Vector2(fX, fY); } //-------------------------------------------------- // 3D //-------------------------------------------------- public static Vector3 GetPoint3D(Vector3 vOrg, Vector3 vMid, Vector3 vDst, float t) { float fX = (1-t) * (1-t) * vOrg.x + 2 * (1-t) * t * vMid.x + t * t * vDst.x; float fY = (1-t) * (1-t) * vOrg.y + 2 * (1-t) * t * vMid.y + t * t * vDst.y; float fZ = (1-t) * (1-t) * vOrg.z + 2 * (1-t) * t * vMid.z + t * t * vDst.z; return new Vector3(fX, fY, fZ); } //--------------------------------------------------