我只是在修改处理,以便在程序上制作一些.gif
动画。出于某种原因,当我运行它时(以及使用GifAnimation将其导出时),我刚刚完成的那个有很多抖动。我不完全确定为什么会发生这种情况。处理动画非常紧张
借口下锅的工作是我的代码:
long lastTime = 0;
float angle1, angle2, angle3, angle4, angle5, angle6;
int change;
public void setup() {
size(120, 120);
lastTime = millis();
angle1 = -60;
angle2 = 240;
angle3 = -30;
angle4 = 210;
angle5 = -75;
angle6 = 255;
change = 3;
noFill();
stroke(0);
strokeWeight(10);
smooth();
}
public void draw() {
if (millis() - lastTime > 12) {
background(255,255,255);
lastTime = millis();
stroke(#3aa8c3);
arc(60, 60, 70, 70, radians(angle1), radians(angle2));
ellipse(60, 60, 10, 10);
stroke(#e7e7e7);
arc(60, 60, 40, 40, radians(angle3), radians(angle4));
arc(60, 60, 100, 100, radians(angle5), radians(angle6));
angle1-=change*2;
angle2-=change*2;
angle3+=change*3;
angle4+=change*3;
angle5+=change;
angle6+=change;
}
}
结果如下:
有什么事情我做错了,或者是单纯的限制处理环境?
编辑: 将渲染模式更改为P3D(size(120, 120, P3D);
)后,事情运行得更加顺畅。它摆脱了圆角边缘,我不得不添加一些反锯齿(smooth(8)
),但它不再抖动。透明背景也是一个好处:
它可能是低质量的抗锯齿。也许试试['smooth(8)'](https://processing.org/reference/smooth_.html)? – rhashimoto
我只是将渲染模式改为'P3D',抖动是固定的。它摆脱了圆角和消除锯齿,但该命令使它看起来好多了。谢谢! – MattDs17
可能重复[为什么这个摆动?](http://stackoverflow.com/questions/25194697/why-does-this-wobble) –