Re: Re: Adding markers on the surface of a Plot3D?
- To: mathgroup at smc.vnet.net
- Subject: [mg89402] Re: [mg89375] Re: Adding markers on the surface of a Plot3D?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 8 Jun 2008 02:33:49 -0400 (EDT)
- References: <g2b4o8$nm2$1@smc.vnet.net> <200806070700.DAA09985@smc.vnet.net>
In other words - the change in the behaviour of Show in version 6 was not any kind of "interface design change" (optional or otherwise) but a consequence of the most fundamental change in Mathematica 6 compared with earlier version, namely: the fact that in Mathematica 6 the actual "graphic" (i.e. a picture) is a Mathematica object itself and not a "side effect", and hence when obtained as output behaves exactly as all other Mathematica output does. In addition to greater consistency, a major advantage of this is that all kinds of graphic details can now be controlled using the Mathematica programming language itself, while in earlier versions, one had to resort to programming in PostScript (or using an external program that could edit PostScript files). This is, of course, a perfect illustration of the concept of "integration" as in "the world's only fully integrated technical computing system" .... Andrzej Kozlowski On 7 Jun 2008, at 16:00, Jens-Peer Kuska wrote: > Hi, > > a) yes you are right, it' cant be done : > > fun[x_, y_] := Sin[x*y] > > DynamicModule[{plt}, > plt = Plot3D[fun[x, y], {x, -Pi, Pi}, {y, -Pi, Pi}]; > Manipulate[ > xline = ParametricPlot3D[{x, yc, fun[x, yc]}, {x, -Pi, Pi}]; > yline = ParametricPlot3D[{xc, y, fun[xc, y]}, {y, -Pi, Pi}]; > Graphics3D[{plt[[1]], > Sphere[{xc, yc, fun[xc, yc]}, 0.1], {AbsoluteThickness[4], > RGBColor[1, 0, 0], xline[[1]], yline[[1]]}}], > {{xc, 0}, -Pi, Pi}, {{yc, 0}, -Pi, Pi} > ] > ] > > and an other impossible example > > fun[x_, y_] := Exp[-x^2 - y^2] > > DynamicModule[{plt}, > plt = Plot3D[fun[x, y], {x, -Pi, Pi}, {y, -Pi, Pi}, > PlotStyle -> Opacity[0.5], PlotRange -> All]; > Manipulate[ > pnt = Append[xy, fun @@ xy]; > Graphics3D[{plt[[1]], Line[{Append[xy, 0], pnt}], > Sphere[pnt, 0.1], {AbsoluteThickness[4], RGBColor[1, 0, 0], > Line[{pnt, pnt*{1, 1, 2}}]}}, PlotRange -> All], > {{xy, {0, 0}}, Slider2D} > ] > ] > > and > > Show[] evaluates to a Graphics[]/Graphics3D[] and the FrontEnd > show this graphics lik it show you the result of Expand[(x+1)^1000] > but in older Mathematica versions the FrontEnd need an other program > to display the PostScript and Show[] had a side effect that it paste > a rendered image in the Notebook. > > Regards > Jens > > > AES wrote: >> I'd like to highlight the two mesh lines that pass through a certain >> central point -- let's call it the point {xc,yc} -- on a Plot3D by >> thickening those two lines relative to the other mesh lines, or >> giving >> them a distinctive color, or . . . >> >> Or put a dot on the surface at the point {xc, yc, f[xc,yc]} to >> identify >> this location on the surface . . . >> >> Or run a vertical "post" up through that point using something like >> Line[{xc, yc, 0}, {xc, yc, 2*f[xc,yc]}}] (with the part of the post >> below the surface not being seen if you look at the surface from >> above) . . . >> >> I think I've so far tested and confirmed every possible way in which >> each of these tasks _can't_ be done . . . >> >> [And would someone want to help me understand _why_ the >> Show[ - - - - -] command (followed by a semicolon) no longer works, >> or >> can no longer be used, as one of a sequence of multiple expressions >> within a longer cell? And why it can't even have a semicolon >> following >> it as the last line in a cell? I just can't envision the logic of >> why >> this was a necessary (or optional?) interface design decision -- >> isn't >> Show[---] an expression?] >> >
- References:
- Re: Adding markers on the surface of a Plot3D?
- From: Jens-Peer Kuska <kuska@informatik.uni-leipzig.de>
- Re: Adding markers on the surface of a Plot3D?