Syntax

hPatch = swplot.arrow(rStart, rEnd, R, alpha, lHead)

hPatch = swplot.arrow(rStart, rEnd, R, alpha, lHead, nPatch)

hPatch = swplot.arrow(handle, ...)

Description

hPatch = swplot.arrow(rStart, rEnd, R, alpha, lHead) draws 3D arrows between a given start and end position. The arrows will be a triangulated patch object.

hPatch = swplot.arrow(rStart, rEnd, R, alpha, lHead, nPatch) creates arrows with \(5 n_{patch}\) number of patch faces per arrow.

hPatch = swplot.arrow(handle, ...) adds the generated patch object to a given axis if handle is an axis handle or adds the arrows to an existing patch object, if the given handle points to a patch object.

Examples

Draw a 100 random arrows in the \((\pm 1,\pm 1,\pm 1)\) cube:

swplot.figure
N = 100
swplot.arrow(2*rand(3,N)-1,2*rand(3,N)-1,0.01,30,0.05)
swplot.zoom(40)
swplot.zoom(40)

Input Arguments

handle
Handle of an axis or triangulated patch object. In case of patch object, the constructed faces will be added to the existing object.
rStart
Coordinates of the arrow starting point, one vector per arrow in a matrix with dimensions of \([3\times n_{obj}]\).
rEnd
Coordinates of the arrow end point, one vector per arrow in a matrix with dimensions of \([3\times n_{obj}]\).
R
Radius of the arrow body, scalar.
alpha
Angle of the head in degree.
lHead
Length of the head.
nPatch
Number of points on the circle of the body, default value is stored in swpref.getpref('npatch'). The final patch object will have \(5n_{patch}\) number of faces and \(3n_{patch}\) number of vertices.

See Also

swplot.cylinder