DMUG-Archiv 2011

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Aufgabe::multizentrische Linie

Hallo Patrick,

Weiterhin faellt einem auf, dass die meisten Punkte egal sind. Nur die
Punkte, die die konvexe Huelle beschreiben sind ausschlaggebend.

Richtig.

Sei {x, y} eine Position des Stiftes. Die Vereinigung
Join[{{x, y}}, P] hat ebenfalls eine konvexe Hülle. Die Länge polyL des
Polygonzuges dieser konvexen Hülle ist l, sofern {x, y} an der richtigen
Stelle liegt, mit anderen Worten

Needs["ComputationalGeometry`"]
Remove[polyL, mzL]

polyL[p_] := Plus @@ Sqrt[(#.# &) /@ ((p[[#]] &) /@ # - (p[[#]] &) /@
         RotateLeft[#]) &[ConvexHull[p]]]

mzL [pts_, l_?NumericQ] :=
 ContourPlot[polyL[Join[pts, {{x, y}}]] == l,
   {x, Min[pts\[Transpose][[1]]] - l/2, Max[pts\[Transpose][[1]]] + l/2},
   {y, Min[pts\[Transpose][[2]]] - l/2, Max[pts\[Transpose][[2]]] + l/2},
   Epilog -> Point[pts]
   ] /; VectorQ[pts, VectorQ[#, NumericQ && Length[#] == 2] &] &&
   l > polyL[pts]


beinahe wäre es ein OneLiner geworden ...

Gruss
Udo.



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html