public void TranslatePnt2dPnt2d() { var res = new Ax22d(new Pnt2d(-1, -1), new Dir2d(1, 0)); var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); Assert.AreEqual(res, p2.Translated(new Pnt2d(3, 5), new Pnt2d(1, 2))); p2.Translate(new Pnt2d(3, 5), new Pnt2d(1, 2)); Assert.AreEqual(res, p2); }
public void MirrorAx2d() { var res = new Ax22d(new Pnt2d(-1, 2), new Dir2d(-1, 0), new Dir2d(0, 1)); var m2 = new Ax2d(new Pnt2d(0, 1), new Dir2d(0, 1)); var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); Assert.AreEqual(res, p2.Mirrored(m2)); p2.Mirror(m2); }
public void Scale() { var res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(1, 0)); var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); Assert.AreEqual(res, p2.Scaled(new Pnt2d(2, 3), 3)); p2.Scale(new Pnt2d(2, 3), 3); Assert.AreEqual(res, p2); }
public void Rotate() { var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); var p3 = p2.Rotated(new Pnt2d(1, 2), Math.PI / 2); Assert.That(new Pnt2d(1, 2).IsEqual(p3.Location, 0.000001)); Assert.That(new Dir2d(0, 1).IsEqual(p3.XDirection, 0.000001)); Assert.That(new Dir2d(-1, 0).IsEqual(p3.YDirection, 0.000001)); p2.Rotate(new Pnt2d(1, 2), Math.PI / 2); Assert.That(new Pnt2d(1, 2).IsEqual(p2.Location, 0.000001)); Assert.That(new Dir2d(0, 1).IsEqual(p2.XDirection, 0.000001)); Assert.That(new Dir2d(-1, 0).IsEqual(p2.YDirection, 0.000001)); }
public void Transform() { Trsf2d t1 = new Trsf2d(); t1.SetRotation(new Pnt2d(1, 2), Math.PI / 2); var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); var p3 = p2.Transformed(t1); Assert.That(new Pnt2d(1, 2).IsEqual(p3.Location, 0.000001)); Assert.That(new Dir2d(0, 1).IsEqual(p3.XDirection, 0.000001)); Assert.That(new Dir2d(-1, 0).IsEqual(p3.YDirection, 0.000001)); p2.Transform(t1); Assert.That(new Pnt2d(1, 2).IsEqual(p2.Location, 0.000001)); Assert.That(new Dir2d(0, 1).IsEqual(p2.XDirection, 0.000001)); Assert.That(new Dir2d(-1, 0).IsEqual(p2.YDirection, 0.000001)); }
public void Components() { var p1 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); var p2 = new Ax22d(new Pnt2d(2, 3), new Dir2d(0, 1)); Assert.AreEqual(new Pnt2d(1, 2), p1.Location); Assert.AreEqual(new Dir2d(1, 0), p1.XDirection); Assert.AreEqual(new Dir2d(0, 1), p1.YDirection); p2.Location = new Pnt2d(3, 2); Assert.AreEqual(new Pnt2d(3, 2), p2.Location); p2.XDirection = new Dir2d(0, -1); Assert.AreEqual(new Dir2d(0, -1), p2.XDirection); p2.YDirection = new Dir2d(1, 0); Assert.AreEqual(new Dir2d(1, 0), p2.YDirection); }
public void ValueType_Ax22d() { var s1 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0)); var s2 = new Ax22d(new Pnt2d(2, 3), new Dir2d(0, 1)); Assert.AreEqual(new Pnt2d(1, 2), s1.Location); Assert.AreEqual(new Dir2d(1, 0), s1.XDirection); Assert.AreEqual(new Dir2d(0, 1), s1.YDirection); var p2 = s2; p2.Location = new Pnt2d(3, 2); Assert.AreEqual(new Pnt2d(3, 2), p2.Location); p2.XDirection = new Dir2d(0, -1); Assert.AreEqual(new Dir2d(0, -1), p2.XDirection); p2.YDirection = new Dir2d(1, 0); Assert.AreEqual(new Dir2d(1, 0), p2.YDirection); var res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(-1, 0)); p2 = s1; Assert.AreEqual(res, p2.Mirrored(new Pnt2d(0, 1))); p2.Mirror(new Pnt2d(0, 1)); Assert.AreEqual(res, p2); res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(-1, 0)); p2 = s1; Assert.AreEqual(res, p2.Mirrored(new Pnt2d(0, 1))); p2.Mirror(new Pnt2d(0, 1)); Assert.AreEqual(res, p2); res = new Ax22d(new Pnt2d(-1, 2), new Dir2d(-1, 0), new Dir2d(0, 1)); var m2 = new Ax2d(new Pnt2d(0, 1), new Dir2d(0, 1)); p2 = s1; Assert.AreEqual(res, p2.Mirrored(m2)); p2.Mirror(m2); p2 = s1; #if DEBUG Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.Rotated(new Pnt2d(1, 2), Math.PI / 2).ToString()); p2.Rotate(new Pnt2d(1, 2), Math.PI / 2); Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.ToString()); #else Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.Rotated(new Pnt2d(1, 2), Math.PI / 2).ToString()); p2.Rotate(new Pnt2d(1, 2), Math.PI / 2); Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.ToString()); #endif res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(1, 0)); p2 = s1; Assert.AreEqual(res, p2.Scaled(new Pnt2d(2, 3), 3)); p2.Scale(new Pnt2d(2, 3), 3); Assert.AreEqual(res, p2); res = new Ax22d(new Pnt2d(-1, -1), new Dir2d(1, 0)); p2 = s1; Assert.AreEqual(res, p2.Translated(new Pnt2d(3, 5), new Pnt2d(1, 2))); p2.Translate(new Pnt2d(3, 5), new Pnt2d(1, 2)); Assert.AreEqual(res, p2); res = new Ax22d(new Pnt2d(3, 5), new Dir2d(1, 0)); p2 = s1; Assert.AreEqual(res, p2.Translated(new Vec2d(2, 3))); p2.Translate(new Vec2d(2, 3)); Assert.AreEqual(res, p2); //gp2.Scaled(new gp_Pnt2d(2, 3, 2), 3); //TestContext.WriteLine(string.Format(CultureInfo.InvariantCulture, $"({gp2.Location().x},{gp2.Location().y},{gp2.Location().z}), ({gp2.XDir2dection().x},{gp2.XDir2dection().y},{gp2.XDir2dection().z}), ({gp2.YDir2dection().x},{gp2.YDir2dection().y},{gp2.YDir2dection().z}), ({gp2.Dir2dection().x},{gp2.Dir2dection().y},{gp2.Dir2dection().z})")); //gp_Trsf gt1 = new gp_Trsf(); //gt1.SetRotation(gp.OZ(), Math.PI / 2); //gp2.Transform(gt1); //TestContext.WriteLine(string.Format(CultureInfo.InvariantCulture, $"({gp2.Location().x},{gp2.Location().y},{gp2.Location().z}), ({gp2.XDir2dection().x},{gp2.XDir2dection().y},{gp2.XDir2dection().z}), ({gp2.YDir2dection().x},{gp2.YDir2dection().y},{gp2.YDir2dection().z}), ({gp2.Dir2dection().x},{gp2.Dir2dection().y},{gp2.Dir2dection().z})")); Trsf2d t1 = new Trsf2d(); t1.SetRotation(new Pnt2d(1, 2), Math.PI / 2); p2 = s1; #if DEBUG Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.Transformed(t1).ToString()); p2.Transform(t1); Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.ToString()); #else Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.Transformed(t1).ToString()); p2.Transform(t1); Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.ToString()); #endif }
//-------------------------------------------------------------------------------------------------- #endregion #region gp_Ax22d public static int Sense(this Ax22d ax) { return(ax.YAxis.Angle(ax.XAxis) > 0 ? 1 : -1); }