RE: Plotting a contour plot with cylindrical co-ordinates
- To: mathgroup at smc.vnet.net
- Subject: [mg49482] RE: [mg49468] Plotting a contour plot with cylindrical co-ordinates
- From: "David Park" <djmp at earthlink.net>
- Date: Thu, 22 Jul 2004 02:44:46 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Mathematica basically make rectangular contour plots. But it is possible to make a rectangular contour plot in the r-theta plane, grab the primitive graphics, and transform them to the xy-plane to obtain a circular contour plot. The DrawGraphics package at my web site below contains all the routines needed for doing this. First, DrawGraphics deals directly with primitive graphics so there is no problem in working with them. One problem that occurs in making these transformations is that long straight line segments must be broken into multiple points. These straight line segments generally occur on the edge of the rectangular contour plot. They can be broken up with the FineGrainPolygons routine. Without fine graining the segments will not bend. Then the DrawingTransform routine can be used to transform from polar to cartesian coordinates. Here is an example that works with a function. In your case you could use ListContourDraw with data instead of ContourDraw with a function. (These routines work just like ListContourPlot and ContourPlot except that they return the primitive graphics without a side plot.) DrawingTransform takes pure functions as its arguments. These give the new coordinates in terms of the old coordinates. Needs["DrawGraphics`DrawingMaster`"] f[r_, \[Theta]_] := (2 - 3*r + r^2)*Cos[2*\[Theta]] Draw2D[ {(ContourDraw[f[r, \[Theta]], {r, 0, 1.5}, {\[Theta], 0, 2\[Pi]}, ColorFunction -> Hue, PlotPoints -> 50] // FineGrainPolygons[0.3, 4]) /. DrawingTransform[#1 Cos[#2] &, #1Sin[#2] &], Circle[{0, 0}, 1.5]}, PlotRange -> All, AspectRatio -> Automatic]; This gives a smooth circular contour plot of the function in the xy-plane. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Jake [mailto:luckyjake3000 at yahoo.com] To: mathgroup at smc.vnet.net I have a set of data which corresponds to points on a circle. I have these values as a function of r and theta. Is there a way of plotting this in Mathematica? The ContourPlot function requires x and y co-ordinates. Please help if you know. thanks.