RE: How can I graph 3D vectors in Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg67462] RE: [mg67447] How can I graph 3D vectors in Mathematica?
- From: "David Park" <djmp at earthlink.net>
- Date: Mon, 26 Jun 2006 00:13:12 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I would not call this so much a 3D vector, as a curve in 3D space parametrized by t. First, you will save yourself some time if you can go through much of Part I of The Mathematica Book and learn the basic syntax. Specifically, lists of component positions, or vector components, or lists of anything are always enclosed in curly brackets, {}. Arguments of functions like Sin and Cos are always enclosed in square brackets, []. Each type of bracket in Mathematica has a specific use and they cannot be interchanged. Next, although it is not absolutely necessary, it is usually better to define your parametrized curve as a function of t. In the following statement t_ is a pattern variable and it means that anything put in the t slot will be used on the right hand side. I used p to define the parametrized curve. ':=' is a SetDelayed. (You can copy the Mathematica statements directly from the posting to a Mathematica notebook.) p[t_] := {Sin[t], t, Cos[t]} We can then plot the curve with the following statement. ParametricPlot3D[p[t], {t, 0, 2Pi}] If you want to make a more fancy plot, and better control its appearance you can give it a colored background and add labels with a series of options. Mathematica usually adjust the ratios of the bounding box of 3D plots so that each axis has the same scale. In the following plot I am using a larger t domain and this would lead to a long narrow plot. So I used a plot Option, BoxRatios, to give more convenient plot dimensions. I used the PlotPoints option to specify that Mathematica was to take more sample points. This gave a smoother curve. In general, you can use plot Options to improve your plots although it take a while to learn what options there are and how to use them. Needs["Graphics`Colors`"] ParametricPlot3D[p[t], {t, 0, 8Pi}, PlotPoints -> 150, BoxRatios -> {1, 2, 1}, AxesLabel -> {x, t, z}, PlotLabel -> "A Helix", Background -> Linen, ImageSize -> 450]; If you actually want to plot 3D arrows, with little arrow cones on the tip, then Mathematica does not have such a routine. (There is a 2D Arrow routine.) The DrawGraphics package at my web site has an Arrow3D routine that will plot 3D arrows and also put arrow cones on curves, and also allow you to put 2D or 3D arrowheads anywhere along the length of a line and not just at the tip. The following uses DrawGraphics to draw a series of arrow cones along the curve. The DrawGraphics construction also makes it easy to give a color to the curve. (The regular method is to include the color as a 4th argument in the parametrization.) Needs["DrawGraphics`DrawingMaster`"] Draw3DItems[ {Blue, curve = ParametricDraw3D[p[t], {t, 0, 8Pi}, PlotPoints -> 150], ArrowCurve3D[curve, #, HeadLength3D -> 0.01] & /@ Range[0.2, 1, 0.2]}, BoxRatios -> {1, 2, 1}, AxesLabel -> {x, t, z}, PlotLabel -> "A Helix", Background -> Linen, ImageSize -> 450]; David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Michael [mailto:sirhankins at gmail.com] To: mathgroup at smc.vnet.net Hi, I am trying to figure out hout to make Mathematica graph 3D vectors. For example, I would like to graph v = <sin(t), t, cos(t)> However, I have not been able to figure out what lines to type in to output the graph. I'm relatively new to the software, so any info would be great. If anyone can help me figure out what to input in order to output the graph of this type of vector, I'd be very thankful!