Re: Question:Polar Field Plot
- To: mathgroup at smc.vnet.net
- Subject: [mg21664] Re: [mg21589] Question:Polar Field Plot
- From: "ZEE MEANT NG" <Zee.Ng-1 at stud.umist.ac.uk>
- Date: Fri, 21 Jan 2000 04:00:15 -0500 (EST)
- Reply-to: mchpizn2 at stud.umist.ac.uk
- Sender: owner-wri-mathgroup at wolfram.com
Dear Hartmut, I have tried the solution which you have given for question 2 using Mathematica 4. The undesired output is not suppressed. On the other hand, the plot which is exactly the same as the one earlier (In[6]) was produced. I would be very helpful if you could help me in solving this problem. regards, zee meant ZEE MEANT NG schrieb: > > I am trying to plot a 2D vector field. Equations which i have are in > polar form ie r and theta. > r^2= x^2+y^2 > Er=f(r,Theta) > Ep=g(r,Theta) > > I have changed them to cartesian form ie Ex, Ey . > and put Theta= arctan[y/x] > My plot covers the region {x,-1,1} and {y-1,1} > > Question 1: > The values of theta produced by mathematica are > -90<Theta<90 degree but what i required is theta which gives the > value from 0 to 360 degree. > I have used the if statement as follows but it does not work. > If[x >= 0, [Theta] = ArcTan[y/x], [Theta] = ArcTan[y/x] + \[Pi]]; > PlotVectorField[{Ex1, Ey1}, {x, - R, R}, > {y, - R, R }] > > Question 2: > Using the built-in function to plot the vector field, it plots all > the field for the entire region. How do i set some constraints so > that it only plots at the desired region (eg. plot where x^2+y^2 < R) > ? > > I am having the same problem in the contour plot as well. hi Zee, To question 1: simply use ArcTan[x,y] which regards the quandrant where {x,y} lies. To question 2: a simple method would be to just suppress unwanted output, e.g.: In[1]:= << Graphics`PlotField` In[6]:= PlotVectorField[{-y, x}, {x, -1, 1}, {y, -1, 1}] and then In[9]:= Show[%6 /. Arrow[{x_, y_}, __] /; x^2 + y^2 > 1.1 -> Sequence[] ] look, that I didn't write x^2 + y^2 > 1 because this gives a somewhat ugly appearance (on obvious grounds as you will see) Of course one could try to write a function PlotSphericalVectorField but it might be difficult to get the sampling points right at nearly constant density (perhaps with the exclusion of a hexgonal pattern, or any of Escher's for that matter). kind regards, Hartmut Zee Menat NG