public void PointInsideLineTest() { var ray1 = new KtRay2D(new KtPoint2D(0, 2), new KtPoint2D(30, 4)); Assert.AreEqual(ray1.PointInsideLine(4), new KtPoint2D(120, 10)); Assert.AreEqual(ray1.PointInsideLine(-4), new KtPoint2D(-120, -6)); }
public void InlineTest() { var ray1 = new KtRay2D(new KtPoint2D(0, 2), new KtPoint2D(30, 4)); Assert.IsTrue(ray1.Inline(new KtPoint2D(120, 10))); Assert.IsFalse(ray1.Inline(new KtPoint2D(-120, -6))); }
public void Inequality() { var line = new KtLine2D(0, 0, 20, 1); var segment = new KtSegment2D(0, 0, 20, 1); var ray = new KtRay2D(new KtPoint2D(0, 0), new KtPoint2D(20, 1)); Assert.AreNotEqual(line, segment); Assert.AreNotEqual(line, ray); Assert.AreNotEqual(segment, ray); }
public void IntersectionTest() { var ray1 = new KtRay2D(new KtPoint2D(0, 2), new KtPoint2D(30, 4)); var ray2 = new KtRay2D(new KtPoint2D(5, 0), new KtPoint2D(15, 12)); #pragma warning disable CS0618 // Type or member is obsolete Assert.AreEqual(ray1.IntersectWith3(ray2), new KtPoint2D(120.0 / 17, 42.0 / 17)); var ray3 = new KtRay2D(new KtPoint2D(4, -2), new KtPoint2D(20, -4)); var ray4 = new KtRay2D(new KtPoint2D(-5, 6), new KtPoint2D(15, 12)); Assert.IsNull(ray3.IntersectWith3(ray4)); #pragma warning restore CS0618 // Type or member is obsolete }
public void KtRay2DTest() { var ray = new KtRay2D(new KtPoint2D(4, 6), new KtPoint2D(5, -10)); Assert.AreEqual(ray.Start, new KtPoint2D(4, 6)); Assert.AreEqual(ray.End, new KtPoint2D(5, -10)); Assert.AreEqual(ray, new KtRay2D(new KtPoint2D(4, 6), new KtPoint2D(5, -10))); var ray2 = new KtRay2D(new KtPoint2D(3, 6), new KtVector2D(2, -1)); var ray3 = new KtRay2D(new KtPoint2D(3, 6), new KtVector2D(4, -2)); Assert.AreEqual(ray2.Start, new KtPoint2D(3, 6)); Assert.AreEqual(ray2.End, new KtPoint2D(3, 6) + new KtPoint2D(2, -1)); Assert.AreEqual(ray2, ray3); }
public void TestIntersectionsOfLineTypes() { var line = new KtLine2D(2, 4, 5); var segment = new KtSegment2D(0, 2, 30, 4); #pragma warning disable CS0618 // Type or member is obsolete Assert.AreEqual(line.IntersectWith3(segment), null); segment = new KtSegment2D(0, 4, -2, 2); Assert.AreEqual(line.IntersectWith3(segment), new KtPoint2D(-11.0 / 6, 13.0 / 6)); segment = new KtSegment2D(-2, 2, 0, 4); Assert.AreEqual(line.IntersectWith3(segment), new KtPoint2D(-11.0 / 6, 13.0 / 6)); var ray = new KtRay2D(new KtPoint2D(0, 2), new KtVector2D(1, 2)); Assert.AreEqual(line.IntersectWith3(ray), null); ray = new KtRay2D(new KtPoint2D(0, 2), new KtVector2D(1, -2)); Assert.AreEqual(line.IntersectWith3(ray), new KtPoint2D(.5, 1.0)); var yaxis = KtLine2D.YAxis(); var line2 = new KtRay2D(new KtPoint2D(0, 20), new KtVector2D(3, 4)); Assert.AreEqual(yaxis.IntersectWith3(line2), new KtPoint2D(0, 20)); var line45 = new KtRay2D(new KtPoint2D(), new KtVector2D(30, 30)); var line45N = new KtRay2D(new KtPoint2D(0, 50), new KtVector2D(30, -30)); Assert.AreEqual(line45.IntersectWith3(line45N), new KtPoint2D(25, 25)); #pragma warning restore CS0618 // Type or member is obsolete }
public void CloneTest() { var testray = new KtRay2D(new KtPoint2D(1, 4), new KtVector2D(3, 5)); Assert.AreEqual(testray.Clone(), testray); }
public void DistanceTest() { var ray1 = new KtRay2D(new KtPoint2D(4, -2), new KtVector2D(-2, 4)); Assert.IsTrue((ray1.Distance(new KtPoint2D(4, 3)) - 2.23606797749979).NearZero(7)); }