MATLAB quiver3 颜色图
MATLAB quiver3 colormap
我在 MATLAB 上有一个 quiver3 绘图,代码和绘图如下,我希望线条在接近中心点(青蓝色)时为 color-variant,这样我就可以可视化他们与中心的距离。知道我该怎么做吗?非常感谢!
hold on;
grid on;
scatter3(frame_cur.xyz_cam(1,:),frame_cur.xyz_cam(2,:),frame_cur.xyz_cam(3,:),'MarkerFaceColor',[0 .75 .75]);
quiver3(frameGT_cur.xyz_cam(1,:), ...
frameGT_cur.xyz_cam(2,:), ...
frameGT_cur.xyz_cam(3,:), ...
C(1,:)-frame_cur.xyz_cam(1,:), ...
C(2,:)-frame_cur.xyz_cam(2,:), ...
C(3,:)-frame_cur.xyz_cam(3,:), ...
0,'b','ShowArrowHead','off');*
它没有使用 quiver3
,但结果接近您的要求。这个答案的灵感来自 this answer.
我使用 surf
和名称-值参数 'FaceColor','none','EdgeColor','interp'
来创建带有插值颜色的线条:
% generate random 3D points
n = 10;
x = 2*rand(n,1)-1;
y = 2*rand(n,1)-1;
z = 2*rand(n,1)-1;
% the color is the distance of each point
c = sqrt(x.^2 + y.^2 + z.^2);
% plot the points
scatter3(x,y,z,40,c,'filled');
hold on
% add zeros (the center point) between points
xx = [zeros(1,numel(x));x(:)'];xx = xx(:);
yy = [zeros(1,numel(y));y(:)'];yy = yy(:);
zz = [zeros(1,numel(z));z(:)'];zz = zz(:);
cc = [zeros(1,numel(c));c(:)'];cc = cc(:);
% plot the lines
h = surf([xx,xx],[yy,yy],[zz,zz],[cc,cc],...
'FaceColor','none','EdgeColor','interp','LineWidth',1);
colorbar;
我在 MATLAB 上有一个 quiver3 绘图,代码和绘图如下,我希望线条在接近中心点(青蓝色)时为 color-variant,这样我就可以可视化他们与中心的距离。知道我该怎么做吗?非常感谢!
hold on;
grid on;
scatter3(frame_cur.xyz_cam(1,:),frame_cur.xyz_cam(2,:),frame_cur.xyz_cam(3,:),'MarkerFaceColor',[0 .75 .75]);
quiver3(frameGT_cur.xyz_cam(1,:), ...
frameGT_cur.xyz_cam(2,:), ...
frameGT_cur.xyz_cam(3,:), ...
C(1,:)-frame_cur.xyz_cam(1,:), ...
C(2,:)-frame_cur.xyz_cam(2,:), ...
C(3,:)-frame_cur.xyz_cam(3,:), ...
0,'b','ShowArrowHead','off');*
它没有使用 quiver3
,但结果接近您的要求。这个答案的灵感来自 this answer.
我使用 surf
和名称-值参数 'FaceColor','none','EdgeColor','interp'
来创建带有插值颜色的线条:
% generate random 3D points
n = 10;
x = 2*rand(n,1)-1;
y = 2*rand(n,1)-1;
z = 2*rand(n,1)-1;
% the color is the distance of each point
c = sqrt(x.^2 + y.^2 + z.^2);
% plot the points
scatter3(x,y,z,40,c,'filled');
hold on
% add zeros (the center point) between points
xx = [zeros(1,numel(x));x(:)'];xx = xx(:);
yy = [zeros(1,numel(y));y(:)'];yy = yy(:);
zz = [zeros(1,numel(z));z(:)'];zz = zz(:);
cc = [zeros(1,numel(c));c(:)'];cc = cc(:);
% plot the lines
h = surf([xx,xx],[yy,yy],[zz,zz],[cc,cc],...
'FaceColor','none','EdgeColor','interp','LineWidth',1);
colorbar;