6
$\begingroup$

I wish to generate a surface intensity plot of an Airy disk (or perhaps a two-dimensional Gaussian approximation to an Airy disk) on an (x, y)-plane at a specified coordinate. The hope is to have something like this: http://en.wikipedia.org/wiki/File:Airy-3d.svg with solid surface coloration. I am OK with a decent mesh approximation of a representative curve.

Is there a built in method of generating these sorts of intensity plots and treating them like Graphics3D objects that can be translated and placed as desired?

$\endgroup$

2 Answers 2

8
$\begingroup$

RevolutionPlot3D is a good tool for handling this question. The Airy function is given by

airy[r_?NumericQ, β_?NumericQ] := ((1 - E^(-(2/β^2))) BesselJ[1, (2 π r)/β]^2)/(π r^2 β^2) 

Because 3D plotting is much slower, before proceeding to 3D, I recommend making a 2D plot to check that the parameter β has been chosen to give a good looking curve.

Plot[airy[r, 1.], {r, 0, 1.5}, AspectRatio -> Automatic, PlotRange -> All] 

2Dplot.png

Because the revolution will be made about the z-axis, the arguments from the 2D plot can be transferred directly. To get the right look, it is necessary to adjust some the display options away from their default values.

plot = RevolutionPlot3D[airy[r, 1.], {r, 0, 1.5}, Boxed -> False, BoxRatios -> {1, 1, 1}, Axes -> None, PlotRange -> All, Mesh -> 20, PlotPoints -> 100, Lighting -> {{"Ambient", White}}] 

3Dplot.png

A fine witches hat for Halloween.

To extract the polygons used to draw the RevolutionPlot3D, you can use kguler's function getVrtxCoords from this answer. Here is what you will get

polygons = Polygon@getVrtxCoords[plot, {Polygon}]; Graphics3D[polygons] 

polygons.png

$\endgroup$
7
$\begingroup$

The plot referenced can be done with Plot3D. I grabbed the intensity profile from the wiki page

{x0,y0}={0,0}; s[x_,y_]:=Sqrt[(x-x0)^2 + (y-y0)^2] Plot3D[(2 BesselJ[1, s[x,y]]/s[x,y])^2, {x, -10, 10}, {y, -10, 10}, PlotRange -> All, ColorFunction -> "BlueGreenYellow"] 

Airy disk

I wasn't sure about what you meant by translating and placing, so you may have to redefine s[x,y] according its definition

k a Sin[θ] == s[x,y,z] 
$\endgroup$
0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.