Первый метод, используя многоугольники, такие как Sjoerd, но без проблем, вызванных точками на выпуклой оболочке:
Graphics[{FaceForm[], EdgeForm[Black],
Polygon[pts[[#]] & /@
DeleteCases[dtpts, {i_, _} /; MemberQ[ConvexHull[pts], i]][[All,
2]]], Red, Point[pts]}]
Второй метод, используя линии, соединяющие соседние точки:
edges[pts_, {a_, l_List}] := {pts[[a]], #} & /@ pts[[l]]
Graphics[{Line[edges[pts, #]] & /@ dtpts, Red, Point[pts]}]
Оба эти метода приводят к дублированию примитивов (три полигона или две линии, из каждой точки в качестве отправной точки).
Мы можем немного изменить данные и использовать встроенные функции визуализации:
Graphics[{FaceForm[], EdgeForm[Black],
Cases[Normal[
ListDensityPlot[{##, 0.} & @@@ pts, Mesh -> All]], _Polygon,
Infinity], Red, Point[pts]}, ImageSize -> 175]