我是matlab
的新手。
我想在三维轴上绘制类似于下图的内容并移动鼠标移动。
我对第二部分没有问题(在鼠标移动时移动物体), 我不知道如何在三维轴上创建这个圆圈
答案 0 :(得分:0)
elevation = linspace(0,2*pi,100);
r = ones(1,100);
azimuth = .75 * pi *ones(1,100);
while 1
axis([-10 10 -10 10 -10 10])
view([20 20 5])
[newx newy] = ginput(1);
[x,y,z] = sph2cart(azimuth,elevation,r);
x = x + newx;
y = y + newy;
patch(x,y,z,[1 0 0],'EdgeColor','r');
axis([-10 10 -10 10 -10 10])
end
您可以将r
更改为r = .5 * ones(1,100);
但点击的坐标似乎没有。
我认为你在上一个问题中解决了这个问题。
注意强>
ginput 返回的坐标将缩放到您单击的轴的XLim和YLim边界(数据单位)。 相比之下,图 CurrentPoint 属性始终以图形单位返回,与轴单位或限制无关。