Processing 在椭圆路径中旋转某些元素

Processing 在椭圆路径中旋转某些元素,processing,ellipse,Processing,Ellipse,我试着让一些物体,比如说12,在加工过程中以椭圆路径连续旋转。我得到了一个在一个圆中旋转的草图,我想让它在一个椭圆中旋转。我有一些来自processing forum的指针,但是指针中的代码与我发布的代码不同,我还不能理解(三角函数很弱) 我在谷歌上搜索了一下,发现一篇文章试图用这种算法实现这一点: 您需要使用几个参数定义椭圆: x, y: center of the ellipse a, b: semimajor and semiminor axes 如果您想在省略号上移动,这意味着您要更改

我试着让一些物体,比如说12,在加工过程中以椭圆路径连续旋转。我得到了一个在一个圆中旋转的草图,我想让它在一个椭圆中旋转。我有一些来自processing forum的指针,但是指针中的代码与我发布的代码不同,我还不能理解(三角函数很弱)

我在谷歌上搜索了一下,发现一篇文章试图用这种算法实现这一点:

您需要使用几个参数定义椭圆:

x, y: center of the ellipse
a, b: semimajor and semiminor axes
如果您想在省略号上移动,这意味着您要更改 主轴与椭圆上的位置之间的角度。让 把这个角度叫做α角

您的位置(X,Y)是:

要向左或向右移动,需要增加/减少alpha和 然后重新计算你的位置。资料来源:

如何将其集成到草图中?多谢各位

这是我的素描:

void setup()
{
大小(1024768);
textFont(createFont(“Arial”,30));
}
作废提款()
{
背景(0);
中风(255);
int cx=500;
int-cy=350;
int r=300;//圆的半径
float t t=millis()/4000.0f;//增加以减慢移动速度
椭圆(cx,cy,5,5);
对于(int i=1;i替换

int r = 300; //radius of the circle

替换

int x = (int)(cx + r * cos(t));
int y = (int)(cy + r * sin(t));

int a = 350; // major axis of ellipse
int b = 250; // minor axis of ellipse
int x = (int)(cx + r * cos(t));
int y = (int)(cy + r * sin(t));
int x = (int)(cx + a * cos(t));
int y = (int)(cy + b * sin(t));