Hi Gregory,
I understand that you wish to create quality animations for an educational video and prefer not to leverage quiver3 implementations. I carefully investigated your requirements and boiled down to a possible workaround which utilises arrow function. To be clear, I have used arrow function to plot the line in 3D space along with the arrowhead. Also, while updating the vector draw length, I have set the visibility of the arrow handle arr to off so that it does not get carried forward with the next iteration. Here is the code snippet for your reference
clear; close all;
origin = [0 0 0];
vec3d = [0.34 0.72 0.50];
% axis setup
ax = gca;
ax.Units = "normalized";
axis equal
axis vis3d
ax.XLim = [-1 1];
ax.YLim = [-1 1];
ax.ZLim = [-1 1];
ax.Box = "on";
ax.BoxStyle = "full";
view(50,20);
rotation_angle = 360;
num_frames = 60;
for frame = 1 : num_frames
newCoord = vec3d*(frame/num_frames); % store next set of coordinates
arr = arrow(origin,newCoord);
drawnow
arr.Visible = 'off';
end
arr.Visible = 'on'; % set Visible to on after updating the line
% Rotate view
for frame = 1 : num_frames
ax.View(1) = ax.View(1) + rotation_angle / num_frames;
drawnow
end
I hope this helps.