Re: vector field specifying location of vectors
- To: mathgroup at smc.vnet.net
- Subject: [mg92485] Re: vector field specifying location of vectors
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 1 Oct 2008 18:33:05 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <gbuls7$ldh$1@smc.vnet.net>
yapster wrote: > I'd like to plot a vector field and specify which vectors to plot (for example, only at points with integer coordinates). > > What I am trying to do is show how a vector field transforms under a planar transformation. So, if F is the planar transformation, a vector V based at the point (x,y) will become a new vector NV based at F(x,y). Mathematica 6.x has several functions to plot vector fields in 2D and 3D [1]. Among all these functions, *ListVectorFieldPlot* [2] might be appropriate to display only specific vectors. Just build a rectangular list (at least 2 by 2) of pair of pairs, i.e. {{origX, origY}, {endX, endY}}, with integer coordinates and pass it to the function. For instance, In[1]:= Needs["VectorFieldPlots`"] data = Table[{-i, j^2}, {i, 0, 1, 0.1}, {j, 0, 1, 0.1}] pts = Select[#, VectorQ[#, IntegerQ] &] & /@ Rationalize[data] /. {} -> Sequence[] ListVectorFieldPlot[pts] Out[2]= {{{0., 0.}, {0., 0.01}, {0., 0.04}, {0., 0.09}, {0., 0.16}, {0., 0.25}, {0., 0.36}, {0., 0.49}, {0., 0.64}, {0., 0.81}, {0., 1.}}, {{-0.1, 0.}, {-0.1, 0.01}, {-0.1, 0.04}, {-0.1, 0.09}, {-0.1, 0.16}, {-0.1, 0.25}, {-0.1, 0.36}, {-0.1, 0.49}, {-0.1, 0.64}, {-0.1, 0.81}, {-0.1, 1.}}, {{-0.2, 0.}, {-0.2, 0.01}, {-0.2, 0.04}, {-0.2, 0.09}, {-0.2, 0.16}, {-0.2, 0.25}, {-0.2, 0.36}, {-0.2, 0.49}, {-0.2, 0.64}, {-0.2, 0.81}, {-0.2, 1.}}, {{-0.3, 0.}, {-0.3, 0.01}, {-0.3, 0.04}, {-0.3, 0.09}, {-0.3, 0.16}, {-0.3, 0.25}, {-0.3, 0.36}, {-0.3, 0.49}, {-0.3, 0.64}, {-0.3, 0.81}, {-0.3, 1.}}, {{-0.4, 0.}, {-0.4, 0.01}, {-0.4, 0.04}, {-0.4, 0.09}, {-0.4, 0.16}, {-0.4, 0.25}, {-0.4, 0.36}, {-0.4, 0.49}, {-0.4, 0.64}, {-0.4, 0.81}, {-0.4, 1.}}, {{-0.5, 0.}, {-0.5, 0.01}, {-0.5, 0.04}, {-0.5, 0.09}, {-0.5, 0.16}, {-0.5, 0.25}, {-0.5, 0.36}, {-0.5, 0.49}, {-0.5, 0.64}, {-0.5, 0.81}, {-0.5, 1.}}, {{-0.6, 0.}, {-0.6, 0.01}, {-0.6, 0.04}, {-0.6, 0.09}, {-0.6, 0.16}, {-0.6, 0.25}, {-0.6, 0.36}, {-0.6, 0.49}, {-0.6, 0.64}, {-0.6, 0.81}, {-0.6, 1.}}, {{-0.7, 0.}, {-0.7, 0.01}, {-0.7, 0.04}, {-0.7, 0.09}, {-0.7, 0.16}, {-0.7, 0.25}, {-0.7, 0.36}, {-0.7, 0.49}, {-0.7, 0.64}, {-0.7, 0.81}, {-0.7, 1.}}, {{-0.8, 0.}, {-0.8, 0.01}, {-0.8, 0.04}, {-0.8, 0.09}, {-0.8, 0.16}, {-0.8, 0.25}, {-0.8, 0.36}, {-0.8, 0.49}, {-0.8, 0.64}, {-0.8, 0.81}, {-0.8, 1.}}, {{-0.9, 0.}, {-0.9, 0.01}, {-0.9, 0.04}, {-0.9, 0.09}, {-0.9, 0.16}, {-0.9, 0.25}, {-0.9, 0.36}, {-0.9, 0.49}, {-0.9, 0.64}, {-0.9, 0.81}, {-0.9, 1.}}, {{-1., 0.}, {-1., 0.01}, {-1., 0.04}, {-1., 0.09}, {-1., 0.16}, {-1., 0.25}, {-1., 0.36}, {-1., 0.49}, {-1., 0.64}, {-1., 0.81}, {-1., 1.}}} Out[3]= {{{0, 0}, {0, 1}}, {{-1, 0}, {-1, 1}}} Out[4]= [... plot showing the two vectors deleted ...] Regards, - Jean-Marc [1] "Vector Field Plotting Package" http://reference.wolfram.com/mathematica/VectorFieldPlots/guide/VectorFieldPlottingPackage.html [2] "ListVectorFieldPlot" http://reference.wolfram.com/mathematica/VectorFieldPlots/ref/ListVectorFieldPlot.html