[X, Y] = meshgrid(0:3:9, 0:3:9);
Z = ones(size(X));
U = zeros(size(X));
V = U;
W = ones(size(X))*8;
posArray = [X(:),Y(:),Z(:)];
magnitudeArray = [U(:),V(:),W(:)];
quiverHandle = quiver3D(posArray, magnitudeArray, 'r');
hold on;
axis equal;
grid on;
xlabel('X'); ylabel('Y'); zlabel('Z');
view(20,30);
lighting phong; camlight head;
numArrows = size(posArray,1);
arrowColors = zeros(numArrows, 3);
Rstream = (0:1/(numArrows-1):1)';
arrowColors(:,1) = Rstream;
delete(quiverHandle);
colorQuiverHandle = quiver3D(posArray, magnitudeArray, arrowColors);
delete(colorQuiverHandle);
colorQuiverHandle = quiver3D(posArray, magnitudeArray, arrowColors, 0.9);
radius = 7; height = 1; numRotations = 2; numPoints = 25; arrowScale = 0.8;
[posArray1, magnitudeArray1] = helix(radius, height, numRotations, numPoints, arrowScale);
arrowColors1 = zeros(numPoints, 3);
BlackToWhite = (0:1/(numPoints-1):1);
WhiteToBlack = (1:-1/(numPoints-1):0);
arrowColors1(:,1) = WhiteToBlack';
arrowColors1(:,2) = BlackToWhite';
radius = 2; height = 0.66; numRotations = 3;
[posArray2, magnitudeArray2] = helix(radius, height, numRotations, numPoints, arrowScale);
arrowColors2 = zeros(numPoints, 3);
arrowColors2(:,3) = BlackToWhite';
delete(colorQuiverHandle);
quiver3D(posArray1, magnitudeArray1, arrowColors1, 0.6);
quiver3D(posArray2, magnitudeArray2, arrowColors2, 0.6);
axis equal;
grid on;
xlabel('X'); ylabel('Y'); zlabel('Z');
view(20,10);
axis tight;
camlight head;
lighting phong;
Author: Shawn Arseneau
Created: September 15, 2006