Необходимо искать точки пересечения 3d полилинии с 2d полилинией и заносить точки в список List_Points3d. Точки пересечения должны быть без учета координаты z. Polyline3D следует превращать в 2D, либо как-то по-другому, так как они находятся на разной высоте? Как можно это осуществить? Единственное, до чего я дошел - ниже, но ругается на сам поиск точки пересечения.
List<Polyline2d> List2d = new List<Polyline2d>();
List<Polyline3d> List3d = new List<Polyline3d>();
List<Point3d> List_Points3d = new List<Point3d>();
...
foreach (Polyline3d line3d in List3d)
{
foreach (Polyline2d line2d in List2d)
{
Curve curve3D = line3d as Curve; //кривая из 3d
Curve curve2D = line2d as Curve; //кривая из 2d
Point3dCollection points = new Point3dCollection(); //Поиск точек пересечения
curve3D.IntersectWith(
curve2D,
Intersect.OnBothOperands,
points,
IntPtr.Zero,
IntPtr.Zero);
foreach (Point3d pt in points) //Добавление найденных точек в список
{
List_Points3d.Add(pt);
}
}
}