/// <summary> /// Проверка на пересечение полигона с треугольником. /// </summary> /// <param name="front">Проверяемый полигон.</param> /// <param name="t">Проверяемый треугольник.</param> /// <param name="e">Возвращаемый объект ребра с которым было найдено пересечение.</param> /// <returns></returns> static bool CheckIntersect(Polygon2d front, Triangle t, out ICurve2d e) { e = null; bool res = false; List <ICurve2d> ds = front.GetAllSegments(); if (ds.Count > 0) { for (int i = 0; i < ds.Count; i++) { if (t.Intersect(ds[i], out IXYZ[] pts))
/// <summary> /// Получение расстояния от вершины до средней точки ребра. /// </summary> /// <param name="v">Выбранная вершина.</param> /// <param name="e">Выбранное ребро.</param> /// <returns></returns> static double GetLengthToSeg(Vertex2d v, ICurve2d e) { Line2d line = (Line2d)e; return(v.DistanceTo(line.CenterPoint)); }