在 Octave 中移动圆 4.2.1 使用 set() 和 drawCircle()
Moving a Circle in Octave 4.2.1 Using set() and drawCircle()
我正在尝试编写一个代码,使用 Octave 4.2.1 中的图表模拟太阳系中每个行星围绕太阳的运动。这个项目的一个方面是让图中的太阳和所有行星都是一定大小(即特定半径)的圆,并让每个圆移动。我遇到的问题是使用内置的 set() 函数为已绘制的每个圆的中心设置新的 x 和 y 值。我不想在我的循环的每次迭代中重新绘制每个圆圈,因为它会导致非常不稳定和不一致的运动,并且使用 set() 函数它是非常平滑和一致的运动。我已经能够使用句柄和 plot() 函数将 set() 函数用于简单点。但是对于我想使用的函数,即drawCircle(),使用set()函数总是returns出错。
这是我想在实际代码中执行的操作的简单版本(无法正常工作):
figure 1
s=drawCircle(0,0,1);
hold on
axis([-2 2 -2 2])
set(s,'x0', 1)
此代码 returns 错误:"set: unknown line property x0"。更具体地说,我问的是如何在绘制后使用 set() 函数设置用 drawCircle() 绘制的圆心的 x 和 y 坐标。
如果有人对如何让它工作有任何想法,或者有任何替代解决方法来实现同样的事情,我将不胜感激。
在我看来这就是你想要的:
clear;clf
th=2*pi*linspace(0,1,19);xc=cos(th);yc=sin(th);
h=plot(xc,yc,'linewidth',1);
axis([-2 2 -2 2]);
pause
x=get(h,'xdata');y=get(h,'ydata');
set(h,'xdata',x+1,'ydata',y+0.5)
我正在尝试编写一个代码,使用 Octave 4.2.1 中的图表模拟太阳系中每个行星围绕太阳的运动。这个项目的一个方面是让图中的太阳和所有行星都是一定大小(即特定半径)的圆,并让每个圆移动。我遇到的问题是使用内置的 set() 函数为已绘制的每个圆的中心设置新的 x 和 y 值。我不想在我的循环的每次迭代中重新绘制每个圆圈,因为它会导致非常不稳定和不一致的运动,并且使用 set() 函数它是非常平滑和一致的运动。我已经能够使用句柄和 plot() 函数将 set() 函数用于简单点。但是对于我想使用的函数,即drawCircle(),使用set()函数总是returns出错。
这是我想在实际代码中执行的操作的简单版本(无法正常工作):
figure 1
s=drawCircle(0,0,1);
hold on
axis([-2 2 -2 2])
set(s,'x0', 1)
此代码 returns 错误:"set: unknown line property x0"。更具体地说,我问的是如何在绘制后使用 set() 函数设置用 drawCircle() 绘制的圆心的 x 和 y 坐标。 如果有人对如何让它工作有任何想法,或者有任何替代解决方法来实现同样的事情,我将不胜感激。
在我看来这就是你想要的:
clear;clf
th=2*pi*linspace(0,1,19);xc=cos(th);yc=sin(th);
h=plot(xc,yc,'linewidth',1);
axis([-2 2 -2 2]);
pause
x=get(h,'xdata');y=get(h,'ydata');
set(h,'xdata',x+1,'ydata',y+0.5)