public Node(XYPT xypt, eMaterial material) { m_coord = xypt; m_material = material; m_segmentIDList = new List <int>(); m_areaIDList = new List <int>(); }
public void PointInPolygontopleft() { XYPT point4 = new XYPT(-2, 2); Polygon big = new Polygon(); big.AddPoint(new XYPT(-2, -2)); big.AddPoint(new XYPT(2, -2)); big.AddPoint(new XYPT(2, 2)); big.AddPoint(new XYPT(-2, 2)); Assert.AreEqual(true, big.PointInPolygon(point4)); }
public void PointMustBeInPolygonLineTop() { XYPT point4 = new XYPT(21, 40); Polygon big = new Polygon(); big.AddPoint(new XYPT(20, 20)); big.AddPoint(new XYPT(40, 20)); big.AddPoint(new XYPT(40, 40)); big.AddPoint(new XYPT(20, 40)); Assert.AreEqual(true, big.PointInPolygon(point4)); }
public void PointMustNotBeInPolygonTriangle() { XYPT point4 = new XYPT(20, 0); Polygon big = new Polygon(); big.AddPoint(new XYPT(20, 20)); big.AddPoint(new XYPT(180, 0)); big.AddPoint(new XYPT(80, 120)); Assert.AreNotEqual(true, big.PointInPolygon(point4)); }
public void PointInPolygonbotright() { XYPT point2 = new XYPT(2, -2); Polygon big = new Polygon(); big.AddPoint(new XYPT(-2, -2)); big.AddPoint(new XYPT(2, -2)); big.AddPoint(new XYPT(2, 2)); big.AddPoint(new XYPT(-2, 2)); Assert.AreEqual(true, big.PointInPolygon(point2)); }
public void PointInPolygon() { XYPT point1 = new XYPT(1.999999999, 1.999999999); Polygon big = new Polygon(); big.AddPoint(new XYPT(-2, -2)); big.AddPoint(new XYPT(2, -2)); big.AddPoint(new XYPT(2, 2)); big.AddPoint(new XYPT(-2, 2)); Assert.AreEqual(true, big.PointInPolygon(point1)); }
static void Main(string[] args) { XYPT point = new XYPT(21, 40); Polygon big = new Polygon(); big.AddPoint(new XYPT(20, 20)); big.AddPoint(new XYPT(40, 20)); big.AddPoint(new XYPT(40, 40)); big.AddPoint(new XYPT(20, 40)); big.PointInPolygon(point); //foreach (var point in Unsorted.Points) //{ // Console.WriteLine(point.x + " " + point.y); //} Console.Read(); }
private static Polygon MeshPolygonSequential(Polygon polygon) { Stopwatch st = new Stopwatch(); st.Start(); var tempPolygon = new Polygon(); int xCount = (int)((polygon.BoundingPoints[1].x - polygon.BoundingPoints[0].x) / MeshSize) + 1; int yCount = (int)((polygon.BoundingPoints[1].y - polygon.BoundingPoints[0].y) / MeshSize) + 1; for (int j = 0; j < yCount; j++) { for (int i = 0; i < xCount; i++) { XYPT currentPoint = new XYPT(polygon.BoundingPoints[0].x + i * MeshSize, polygon.BoundingPoints[0].y + j * MeshSize); Polygon innerPoly = new Polygon(); innerPoly.AddPoint(currentPoint); innerPoly.AddPoint(currentPoint + new XYPT(MeshSize, 0)); innerPoly.AddPoint(currentPoint + new XYPT(MeshSize, MeshSize)); innerPoly.AddPoint(currentPoint + new XYPT(0, MeshSize)); if (polygon.PolygonInPolygon(innerPoly, 0.7f)) { foreach (var pt in innerPoly.Points) { tempPolygon.AddPoint(pt); } } } } st.Stop(); string time = (st.ElapsedMilliseconds / 1000).ToString(); var MeshedPolygon = new Polygon(tempPolygon.Points.Distinct().OrderBy(x => x.XX).ToList()); return(MeshedPolygon); }