在matlab中将实心球体绘制为点

时间:2021-02-09 11:12:17

标签: matlab plot matlab-figure

我可以绘制圆点并放置经过它们的箭头:

plot(1,1,'o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10,'LineWidth',1.5); hold on; 
plot(2,1,'o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10,'LineWidth',1.5); hold on; 


vec1=zeros(1,3); vec2=zeros(1,3); col1=zeros(1,3); col2=zeros(1,3);
vec1=[0.98996547   0.00000000    0.14130945];

vec2=[0.00000000    0.70710678   -0.70710678];


col1= [abs(vec1(1,1)) abs(vec1(1,2)) abs(vec1(1,3))];
col2= [abs(vec2(1,1)) abs(vec2(1,2)) abs(vec2(1,3))];

ac=0.1;
p1_sh = [1 1 0] - ac*vec1;
p2_sh= [2 1 0] - ac*vec2;

scalef=0.4;
quiver3(p1_sh(1),p1_sh(2),p1_sh(3),vec1(1,1)*scalef,vec1(1,2)*scalef,vec1(1,3)*scalef,'AutoScale','off','MaxHeadSize',5,'LineWidth',5,'Color',col1); hold on;

quiver3(p2_sh(1),p2_sh(2),p2_sh(3),vec2(1,1)*scalef,vec2(1,2)*scalef,vec2(1,3)*scalef,'AutoScale','off','MaxHeadSize',5,'LineWidth',5,'Color',col2); hold on; 

view(20,20);

hold off;

输出为:

enter image description here

问题是点是圆而不是球体。 LineSpec 没有球体的选项。如何将点变成球体?

1 个答案:

答案 0 :(得分:0)

使用时

plot(1,1,'o','MarkerEdgeColor','k',...
'MarkerFaceColor','k','MarkerSize',10,'LineWidth',1.5);

您正在创建一个 2D 标记,一个没有深度的元素,即使您使用了 plot3(...)。

为了创建一个“实体”球体,你可以使用命令“Sphere”

numVertices = 32;
sphereRadius = 15;
[sph.x, sph.y, sph.z] = sphere(numVertices);
sph.x = sph.x*sphereRadius;
sph.y = sph.y*sphereRadius;
sph.z = sph.z*sphereRadius;

surf(sph.x,sph.y,sph.z);

还要记住,这个球体是空心的,由与其表面一致的平面组成。您无法创建“实体”对象。

相关问题