Exemplo n.º 1
0
        /// <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))
Exemplo n.º 2
0
        /// <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));
        }