Функции вычислительной геометрии (ComputationalGeometry)
В подпакете ComputationalGeometry заданы следующие функции, относящиеся к геометрическим поверхностям:
- ConvexHull [ { {xl, yl…}, {х2, у2,…},…] – вычисляет выпуклость оболочки в точках плоскости;
- DelaunayTriangulation[ {{xl,yl…}, {х2, у2,…},…] – вычисляет триангуляцию Делоне (разбивку на выпуклые треугольники) в точках плоскости;
- DelaunayTriangulationQ [ {{xl, yl…}, {х2, у2,…},…}, trival] – тестирует триангуляцию Делоне в точках плоскости;,
- DiagramPlot [ {{xl, yl…}, {х2, у2,…},…] – построение диаграммы по заданным точкам (после списка параметров возможны спецификации в виде списков diagvert, diagval);
- PlanarGraphPlot [{ {xl, yl…}, {x2, y2,…},…] – построение планарного графа по заданным точкам (после списка параметров возможна спецификация в виде списка indexlist или vals);
- TriangularSurfacePlot [ {{xl,yl, zl}, {x2,y2, z2 },…] – строит поверхность из треугольников по заданным точкам;
- VoronoiDiagramm[ {{xl, yl…}, {х2, у2,…},…] – вычисляет данные для построения диаграммы Вороного.
Примеры применения этих функций приведены ниже:
<
<
DiscreteMath`ComputationalGeometry`
ConvexHull[{{
0.2
}, {
1.1
}, {
0.0
}, {
2.0
}, {
1.2
}}]
{
4
,
5
,
1
,
3
}
delval
=
(DelaunayTriangulation[{{l,
2J
, {
0.3
}, {
1.1
}}])
// Short[#,2]&
{{
1
, {
2
,
3
}}, {
2
, {
3
,
1
}}, {
3
, {
1
,
2
}}}
VoronoiDiagram[{{l,
2
}, {
0.3
}, {
1.1
}}]
{{{
-
0.50000000000000
,
1.5000000000000
},
Ray [{
-
0.50000000000000
,
1.5000000000000
},
{
1.5000000000000
,
3.5000000000000
}],
Ray [ {
-
0.50000000000000
,
1.5000000000000
},
{
2.0000000000000.1.50000000000000
}],
Ray[ {
-
0.50000000000000
,
1.5000000000000
},
{
-
2.5000000000000
,
0.50000000000000
} ]},
{{
1
, {
1
,
3
,
2
}}, {
2
, {
1
,
2
,
4
}}, {
3
, {
1
,
4
,
3
}}}}
Рисунок 11.14 показывает задание на плоскости массива точек data2D, построение планарного графа и его выпуклой огибающей с помощью функции Convex-Hull.
Рис. 11.14. Пример построения планарного графа и его выпуклой огибающей