static void Main(string[] args) { Circle circle = new Circle(); DistanceCalculator2D dist = new DistanceCalculator2D(); Elipse elipse = new Elipse(); Figure2D figure = new Figure2D(); Point2D point = new Point2D(); Polygon plygon = new Polygon(); Rectangle rectangle = new Rectangle(); Square square = new Square(); Console.WriteLine(); Point3D point3D = new Point3D(); Path3D path = new Path3D(); DistanceCalculator3D dist3D = new DistanceCalculator3D(); Console.WriteLine(); GeometryBinaryStorage gbStorage = new GeometryBinaryStorage(); GeometrySVGStorage gsStorage = new GeometrySVGStorage(); GeometryXMLStorage gxStorage = new GeometryXMLStorage(); Console.WriteLine(); Screen2D sc2D = new Screen2D(); Screen3D sc3D = new Screen3D(); }
static void Main(string[] args) { // Create instances from namespace Geometry2D Point2D point2D = new Point2D(); Circle circle = new Circle(); DistanceCalculator2D distance2D = new DistanceCalculator2D(); Ellipse ellipse = new Ellipse(); Figure2D figure2D = new Figure2D(); Polygon polygon = new Polygon(); Rectangle rectangle = new Rectangle(); Square square = new Square(); // Create instances from namespace Geometry3D DistanceCalculator3D distance3D = new DistanceCalculator3D(); Path3D path3D = new Path3D(); Point3D point3D = new Point3D(); // Create instances from namespace Storage GeometryBinaryStorage binaryStorage = new GeometryBinaryStorage(); GeometrySVGStorage svgStorage = new GeometrySVGStorage(); GeometryXMLStorage xmlStorage = new GeometryXMLStorage(); // Create instances from namespace UI Screen2D screen2D = new Screen2D(); Screen3D screen3D = new Screen3D(); }
public void KdTree2D_Range_Accuracy_Test() { var distanceCalculator = new DistanceCalculator2D(); int nodeCount = 1000; var rnd = new Random(); var testPts = new List <int[]>(); for (int i = 0; i < nodeCount; i++) { var start = i + rnd.Next(0, int.MaxValue - 100); var end = start + rnd.Next(1, 10); testPts.Add(new int[] { start, end }); } var tree = new KDTree <int>(2); foreach (var pt in testPts) { tree.Insert(pt); } //IEnumerable tests using linq. Assert.AreEqual(tree.Count, tree.Count()); int j = testPts.Count - 1; while (testPts.Count > 0) { var testStartRange = new int[] { rnd.Next(), rnd.Next() }; var testEndRange = new int[] { rnd.Next() + 100, rnd.Next() + 200 }; var correctResult = new List <int[]>(); for (int i = 0; i < testPts.Count; i++) { if (InRange(testPts[i], testStartRange, testEndRange)) { correctResult.Add(testPts[i]); } } var actualResult = tree.RangeSearch(testStartRange, testEndRange); Assert.IsTrue(correctResult.Count == actualResult.Count); tree.Delete(testPts[j]); testPts.RemoveAt(j); j--; } }
public void KdTree2D_NearestNeighbour_Smoke_Test() { var distanceCalculator = new DistanceCalculator2D(); var testPts = new List <int[]> { new int[2] { 3, 6 }, new int[2] { 17, 15 }, new int[2] { 13, 15 }, new int[2] { 6, 12 }, new int[2] { 9, 1 }, new int[2] { 2, 7 }, new int[2] { 10, 19 } }; var tree = new KDTree <int>(2); foreach (var pt in testPts) { tree.Insert(pt); } //IEnumerable tests using linq. Assert.AreEqual(tree.Count, tree.Count()); int j = testPts.Count - 1; while (testPts.Count > 0) { var testPoint = new int[] { 10, 20 }; var nearestNeigbour = tree.NearestNeighbour(new DistanceCalculator2D(), testPoint); var actualNeigbour = GetActualNearestNeighbour(testPts, testPoint); Assert.IsTrue(distanceCalculator.Compare(actualNeigbour, nearestNeigbour, testPoint) == 0); tree.Delete(testPts[j]); testPts.RemoveAt(j); j--; } //IEnumerable tests using linq. Assert.AreEqual(tree.Count, tree.Count()); }
public void KdTree2D_NearestNeighbour_Accuracy_Test() { var distanceCalculator = new DistanceCalculator2D(); int nodeCount = 1000; var rnd = new Random(); var testPts = new List <int[]>(); for (int i = 0; i < nodeCount; i++) { var start = i + rnd.Next(0, int.MaxValue - 100); var end = start + rnd.Next(1, 10); testPts.Add(new int[] { start, end }); } var tree = new KDTree <int>(2); foreach (var pt in testPts) { tree.Insert(pt); } //IEnumerable tests using linq. Assert.AreEqual(tree.Count, tree.Count()); int j = testPts.Count - 1; while (testPts.Count > 0) { var testPoint = new int[] { rnd.Next(), rnd.Next() }; var nearestNeigbour = tree.NearestNeighbour(distanceCalculator, testPoint); var actualNeigbour = GetActualNearestNeighbour(testPts, testPoint); Assert.IsTrue(distanceCalculator.Compare(actualNeigbour, nearestNeigbour, testPoint) == 0); tree.Delete(testPts[j]); testPts.RemoveAt(j); j--; } //IEnumerable tests using linq. Assert.AreEqual(tree.Count, tree.Count()); }
static void Main() { Point2D a = new Point2D(); Figure2D b = new Figure2D(); Square c = new Square(); Rectangle d = new Rectangle(); Circle e = new Circle(); Elipse f = new Elipse(); DistanceCalculator2D g = new DistanceCalculator2D(); Point3D h = new Point3D(); Path3D i = new Path3D(); DistanceCalculator3D j = new DistanceCalculator3D(); GeometryBinaryStorage k = new GeometryBinaryStorage(); GeometrySVGStorage l = new GeometrySVGStorage(); GeometryXMLStorage m = new GeometryXMLStorage(); Screen2D n = new Screen2D(); Screen3D o = new Screen3D(); }
/// <summary> /// gets the actual nearest neighbour by brute force search /// </summary> /// <param name="points"></param> /// <param name="testPoint"></param> /// <returns></returns> private int[] GetActualNearestNeighbour(List <int[]> points, int[] testPoint) { int[] currentMinNode = null; double currentMin = double.MaxValue; var distanceCalculator = new DistanceCalculator2D(); for (int i = 0; i < points.Count; i++) { var currentDistance = distanceCalculator.GetEucledianDistance(points[i], testPoint); if (currentMin > currentDistance) { currentMin = currentDistance; currentMinNode = points[i]; } } return(currentMinNode); }
static void Main() { Circle circle = new Circle(); Ellipse ellipse = new Ellipse(); DistanceCalculator2D calc2D = new DistanceCalculator2D(); Figure2D figure2D = new Figure2D(); Point2D p2D = new Point2D(); Polygon polygon = new Polygon(); Rectangle rect = new Rectangle(); Square square = new Square(); Console.WriteLine(); DistanceCalculator3D calc3D = new DistanceCalculator3D(); Path3D path = new Path3D(); Point3D p3D = new Point3D(); GeometrySVGStorage geometrySVGStorage = new GeometrySVGStorage(); GeometryXMLStorage geometryXMLStorage = new GeometryXMLStorage(); GeometryBinaryStorage geometryBinaryStorage = new GeometryBinaryStorage(); Screen2D scr2D = new Screen2D(); Screen3D scr3D = new Screen3D(); }