RE: How draw 3D Arrows?
- To: mathgroup@smc.vnet.net
- Subject: [mg11290] RE: [mg11237] How draw 3D Arrows?
- From: "Barthelet, Luc" <lucb@ea.com>
- Date: Wed, 4 Mar 1998 01:39:43 -0500
Here is some code I use. It also display text. youmight want to take it out. Clear[Arrow3D]; Arrow3D[start_,end_,colorDir_,s_]:=Module[ {th,tf,mat,v1,v2,v3}, th=.1; tf=.05; (* Build the matrice that will rotate the arrow into position *) v1 = end-start; v2 = Cross[{1,0,0},v1]; If[v2.v2< (v1.v1)/100, v2 = Cross[{0,1,0},v1]]; v2 = Sqrt[v1.v1]/Sqrt[v2.v2] v2; v3 = Cross[v1,v2]; v3 = Sqrt[v1.v1]/Sqrt[v3.v3] v3; mat = Transpose[{v1,v2,v3}]; {colorDir, Line[{start,start+ mat.{1,0,0}}], EdgeForm[colorDir], SurfaceColor[colorDir], Polygon[{start+ mat.{1-th,tf,tf},start+ mat.{1-th,-tf,-tf}, start+ mat.{1,0,0}}], Polygon[{start+ mat.{1-th,-tf,tf},start+ mat.{1-th,tf,-tf}, start+ mat.{1,0,0}}], colorDir , Text[s,end,{1,-1}] } ]; >-----Original Message----- >From: tharter@nswc.navy.mil [SMTP:tharter@nswc.navy.mil] To: mathgroup@smc.vnet.net >Sent: Monday, March 02, 1998 8:12 PM >To: mathgroup@smc.vnet.net >Subject: [mg11237] How draw 3D Arrows? > >Hi All; > While I realize that the 'Arrow' package of Mathematica can draw >*two-dimensional" arrows, the package fails at giving a 3D arrow. >Anyone have any ideas or suggestions? Say I have 2, distinct 3-dim >points {a,b,c} and {x,y,z}, how do I then draw a 3-dim arrow from >{a,b,c} to {x,y,z} with the "head" of the arrow at {x,y,z}? I could >find nothing on this in MathSource. Many thanks in advance! .....Terry > >