public void IntersectionTest() { var line3 = new KtLine2D(3.0 / 4.0, -1, 0); var line2 = new KtLine2D(100, -1, 75 * 100); #pragma warning disable CS0618 // Type or member is obsolete Assert.AreEqual(line3.IntersectWith3(line2), new KtPoint2D(30000.0 / 397.0, 22500.0 / 397.0)); #pragma warning restore CS0618 // Type or member is obsolete }
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 }