在三维轴中创建圆

时间:2014-11-15 08:13:36

标签: matlab 3d geometry axes

我是matlab的新手。

我想在三维轴上绘制类似于下图的内容并移动鼠标移动。

我对第二部分没有问题(在鼠标移动时移动物体),  我不知道如何在三维轴上创建这个圆圈

enter image description here

1 个答案:

答案 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);

enter image description here

但点击的坐标似乎没有。

我认为你在上一个问题中解决了这个问题。

注意

  

ginput 返回的坐标将缩放到您单击的轴的XLim和YLim边界(数据单位)。   相比之下,图 CurrentPoint 属性始终以图形单位返回,与轴单位或限制无关。