Function: surfarrows - plot a 3D surface (parametric or cartesian) with arrows from a vector field at points on the surface.

Calling sequence:

surfarrows(fld,surf,s=a1..b1,t=a2..b2);
Parameters:

fld - the vector field, either a 3-component list or vector expression in the parameters s and t (specifying the vectors in terms of those parameters) or a function of three variables whose values are 3-component lists or vectors (specifying the vector field in terms of the spatial coordinates x , y and z ).

surf - the surface, either a 3-component list or vector expression in the parameters s and t (for a parametric representation of the surface) or a scalar expression in s and t (representing the z coordinate while s and t are the x and y coordinates respectively).

s , t - names for the parameters.

a1 , b1 , a2 , b2 - endpoints for the parameter intervals. a1 and b1 must be constants, while a2 and b2 may depend on the first parameter s .

Optional arguments:

Description:

Examples:

> with(surfarro,surfarrows):

Surface is a sphere represented parametrically, vectors are tangent to meridians.

> surf1:= [sin(t)*cos(s),sin(t)*sin(s),cos(t)];
F1:= diff(surf1,t);
surfarrows(F1, surf1, s = 0 .. 2*Pi, t = 0 .. Pi,
arrowcolour=blue, scalefactor=1/2,arrowthickness=3, scaling=constrained);

surf1 := [sin(t)*cos(s), sin(t)*sin(s), cos(t)]

F1 := [cos(t)*cos(s), cos(t)*sin(s), -sin(t)]

[Maple Plot]

Surface is a hemisphere represented in Cartesian coordinates, vectors are normal to surface. Note that the y interval depends on x .

> surf2:= sqrt(1-x^2-y^2);
F2:= [x,y,surf2];
surfarrows(F2,surf2, x = -1 .. 1, y = -0.999*sqrt(1-x^2) .. 0.999*sqrt(1-x^2),
scalefactor=1/3, style=patchcontour, scaling=constrained);

surf2 := sqrt(1-x^2-y^2)

F2 := [x, y, sqrt(1-x^2-y^2)]

[Maple Plot]

Parametric hemisphere, vector field is a function of x , y and z coordinates (a dipole field in this case):

> F3:= (x,y,z) -> [3*x*z, 3*y*z, 2*z^2-x^2-y^2];
surfarrows(F3,surf1, s = 0 .. 2*Pi, t = 0 .. Pi/2,
arrowcolour=blue, scalefactor = 1/4, arrowgrid=[10,5], scaling=constrained);

F3 := proc (x, y, z) options operator, arrow; [3*x*...

[Maple Plot]

See also: arrow3d , curvarrows , plot3d

Maple Advisor Database R. Israel, 1998