RE: 3D Arrows
- To: mathgroup at smc.vnet.net
- Subject: [mg88132] RE: [mg88114] 3D Arrows
- From: "Jose Luis Gomez" <jose.luis.gomez at itesm.mx>
- Date: Sat, 26 Apr 2008 03:41:40 -0400 (EDT)
- References: <200804250928.FAA08122@smc.vnet.net>
(* The following code defines a very simple command for 3d arrows, *) (* copy-paste to Mathematica and press Shift-Enter, *) (* no-output will be generated, but the new arrow3d command *) (* will be ready to be used, see example below *) arrow3d[{x1_, y1_, z1_}, {dx_, dy_, dz_}] := arrow3d[{{x1, y1, z1}, {x1 + dx, y1 + dy, z1 + dz}}]; arrow3d[{x1_, y1_, z1_}, d_] := arrow3d[{{x1, y1, z1}, {x1 + d, y1 + d, z1 + d}}]; arrow3d[{{x1_, y1_, z1_}, {x2_, y2_, z2_}}] := Module[{vector, magnitud, normal, vectornormal, cruz, vectorbinormal}, vector = {x2 - x1, y2 - y1, z2 - z1}; magnitud = Norm[vector]; normal = {0, z1 - z2, y2 - y1}; vectornormal = magnitud*normal/Norm[normal]; cruz = Cross[vector, vectornormal]; vectorbinormal = magnitud*cruz/Norm[cruz]; {Cylinder[{{x1, y1, z1}, {x1, y1, z1} + 0.8 vector}, 0.01 magnitud], Polygon[{{x1, y1, z1} + 0.8 vector + 0.1 vectornormal, {x1, y1, z1} + 0.8 vector - 0.1 vectornormal, {x2, y2, z2}}], Polygon[{{x1, y1, z1} + 0.8 vector + 0.1 vectorbinormal, {x1, y1, z1} + 0.8 vector - 0.1 vectorbinormal, {x2, y2, z2}}]} ]; (* EXAMPLE: After evaluating (Shift-Enter) the code above, evaluate *) (* the example below *) Graphics3D[{Sphere[{1, 1, 1}, 0.2], arrow3d[{{1.5, 1, 1}, {2, 2, 2}}], arrow3d[{{1.5, 0, 1}, {-2, -2, 2}}]}, PlotRange -> All] (* hope that helps *) (* Jose *) (* Mexico *) -----Mensaje original----- De: Robert M. Lurie [mailto:RMLURIE at ALUM.MIT.EDU] Enviado el: Viernes, 25 de Abril de 2008 04:28 a.m. Para: mathgroup at smc.vnet.net Asunto: [mg88114] 3D Arrows Apparently Arrows is only a 2D graphic. Is there a way to make an arrow in 3D? Robert M Lurie
- References:
- 3D Arrows
- From: "Robert M. Lurie" <RMLURIE@ALUM.MIT.EDU>
- 3D Arrows