DMUG-Archiv 2004

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

Re: Teichsimulation

Hallo Jens,

dieses Manko lässt sich leicht beheben.
Sie könnten am einfachsten das Beispiel von Robert erweitern, dabei kriecht der Teilchinhalt etwas am Rand hoch bis zur jeweils nächsten Stützstelle:
With[{s = 6., x0 = -2, x1 = 2, y0 = 0., y1 = 2},
Show[{Plot3D[If[c = 8/(x^2 + y^2 + 1) + x^2 + y^2; c < s, s, c], {x, x0, x1}, {y, y0, y1}, PlotRange -> {4.5, 8}, PlotPoints -> 50, Mesh -> False, DisplayFunction -> Identity], Plot3D[8/(x^2 + y^2 + 1) + x^2 + y^2, {x, x0, x1}, {y, y0, y1}, PlotRange -> {4.5, s},
    PlotPoints -> 50, Mesh -> False, DisplayFunction -> Identity]},
  DisplayFunction -> $DisplayFunction]]

Sie könnten noch krasser einfach eine konditionale Ebene einzeichnen, wobei der Teichinhalt nicht überall den Rand erreicht:
With[{s = 5.2, x0 = -2, y0 = -0.5}, Off[Plot3D::plnc, Graphics3D::nlist3];
Show[{Plot3D[8/(x^2 + y^2 + 1) + x^2 + y^2, {x, x0, 2}, {y, y0, 2}, PlotRange -> {4.5, 8},
     PlotPoints -> 50, Mesh -> False, DisplayFunction -> Identity],
Plot3D[If[c = 8/(x^2 + y^2 + 1) + x^2 + y^2; c < s, s, Null], {x, x0, 2}, {y, y0, 2}, PlotRange -> {4.5, 8}, PlotPoints -> 50, Mesh -> False, DisplayFunction -> Identity]}, DisplayFunction -> $DisplayFunction]; On[Plot3D::plnc, Graphics3D::nlist3]]

Oder Sie stellen den Wasserspiegel mit Hilfe von InequalityPlot her und tragen ihn ein:
<< "Graphics`InequalityGraphics`"
With[{s = 6.1, x0 = -2, x1 = 2, y0 = -0.75, y1 = 2},
Clear[levelS]; levelS = InequalityPlot[8/(x^2 + y^2 + 1) + x^2 + y^2 < s, {x, x0, x1}, {y, y0, y1}, Axes -> False, PlotPoints -> 50, DisplayFunction -> Identity];
  Show[{Plot3D[8/(x^2 + y^2 + 1) + x^2 + y^2, {x, x0, x1}, {y, y0, y1},
PlotRange -> {4.5, 8}, PlotPoints -> 50, Mesh -> True, DisplayFunction -> Identity], Graphics3D[(FullForm[levelS][[Sequence @@ #1]] & ) /@ Position[FullForm[levelS], _Polygon] //. {o1_, o2_} -> {o1, o2, s}]}, DisplayFunction -> $DisplayFunction]]

Alles, was in InequalityPlot ein Polygon[] ist, wird hergenommen und auf Niveau z = s gebracht. Das gibt das Bildchen im Anhang. InequalityPlot3D könnten Sie nun noch benutzen, um eine kleine Barke auf dem See ruhen zu lassen.

Mit den besten Grüssen
Udo.


Jens Bredenbeck wrote:

Vielen dank für die verschiedenen kreativen Vorschlägen zum Wasserspiegel, insbesondere Jens Kuskas Teich mit blauem (!) Wasser. Alle Vorschläge haben leider eine Gemeinsamkeit (auch mit meinem eigenen Versuch): Der Funktionswert des Loches wird einfach auf den Wert des Wasserspiegels gesetzt - sprich, das Loch wird sozusagen eingeebnet. Wenn man den Plot jetzt von der Seite anschneidet, kann man natürlich nicht mehr "unter den Wasserspiegel" sehen. Vielleicht schaffe ich es noch, dieses Manko zu beheben...
Viele Grüsse,
Jens

GIF image

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

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