В программу встроены прекрасные инструменты работы с множеством точек и списками объектов, в том числе и точек. Меня заинтересовал вопрос построения диагоналей многоугольников. Один из таких своеобразных способов – Триангуляция Делоне.
Слово триангуляция говорит само за себя. Когда я служил в армии, то познакомился с так называемыми реперными точками, т.е. точками привязки объекта на местности. Триангуляционные знаки похожи по-своему устройству и назначению. Я наблюдал такие знаки в Черноземье в детстве. В любом случае они как и реперные знаки устроены в виде насыпей, холмиков земли, на которых установлены столбы с метками.
Я построил в Геогебре точки и триангуляционные линии Делоне. Эти линии соединяют лишь часть диагоналей по некоторому принципу. Весь ввод данных в Геогебре текстовой.
Поэтому я решил получить входные данные для триангуляции через программу на VBA в Excel.
Это макрос обработки, формирующий выходные данные
Sub Krug1()
a = “Execute[{“
b = “”
kod = 64
kod1 = kod
c = “”
For i = 1 To 33
x = Round(Cells(i, 2), 2)
x = Replace(x, “,”, “.”)
y = Round(Cells(i, 3), 2)
y = Replace(y, “,”, “.”)
kod = kod + 1
If i > 26 Then
kod1 = kod – 26
b = b + “””” + Chr(kod1) + “1=(” + CStr(x) + “,” + CStr(y) + “)” + “””” + “,”
c = c + Chr(kod1) + “1,”
Else
b = b + “””” + Chr(kod) + “=(” + CStr(x) + “,” + CStr(y) + “)” + “””” + “,”
c = c + Chr(kod) + “,”
End If
Next
b = “Execute[{” + Mid(b, 1, Len(b) – 1) + “}]”
Cells(38, 1) = b
c = Mid(c, 1, Len(c) – 1)
c = “gr=DelaunayTriangulation[{” + c + “}]”
Cells(39, 1) = c
End Sub
Входные данные сформированы по формулам. Смотрите файл Excel
Пример с частичными диагоналями.
А вот и готовый результат построения всех диагоналей в многоугольнике в формате Gif.