加工螺旋螺旋?

时间:2017-09-16 15:16:18

标签: java processing

所以我是Java的初学者,最近对使用Processing的基本Applet感兴趣。我试图制作这样的旋转螺旋: enter image description here

我在这里有一个基本螺旋的代码:

    import processing.core.*;

public class prac2 extends PApplet{
    double i=0;float r=0;int flag=0;
    int num=1;
    public void setup(){
        frameRate(100);
        strokeWeight(7);
        size(1920,1080);
    }
    public void draw(){

        float x;
        float y;
        x=(float)(r*Math.cos(i)+960);
        y=(float)(r*Math.sin(i)+500);
        println(i);
        point(x,y);
        i=i+(Math.PI)/(180);
        r=r+(40f/360f);

    }
}

但我不知道如何让它像图像一样旋转..任何建议??

1 个答案:

答案 0 :(得分:3)

Stack Overflow实际上并不是针对一般的“我该怎么做”这类问题而设计的。这是针对具体的“我试过X,期待Y,但得到Z而不是”类型的问题。但我会尽力帮助。

基本上,要创建动画,您需要做三件事:

  • 创建一些保存场景状态的变量。
  • 使用这些变量每帧绘制场景。
  • 随着时间的推移更改这些变量以进行场景更改。

无耻的自我推销:我在Processing available here中写了一篇关于动画的教程。

你实际上已经使用当前的代码完成了这项工作,但是你实际上是在谈论两种不同类型的动画,这些动画彼此之间存在竞争。

我的意思是,看看你的示例动画:螺旋旋转,但请注意它实际上并没有增长。它每次都是相同的螺旋,只是旋转。与你的螺旋相比,螺旋在每一帧都在不断增长。

所以,你的第一步是确定你想要动画做什么:它是一个不断增长的螺旋,还是一个旋转的螺旋,或两者兼而有之?

如果你想让你的螺旋旋转,那么你将不得不通过调用background()函数作为draw()函数的第一行来清除旧框架。这意味着你将不得不重新绘制整个螺旋!但是你会以旋转角度绘制它。如果你随着时间改变那个角度,螺旋就会旋转。

您还可以使用createGraphics()函数将螺旋绘制一次到缓冲区。然后你可以每次都将缓冲区绘制到屏幕上,而不是重新绘制整个螺旋线。只需旋转缓冲区即可旋转螺旋。

如果你想让它同时旋转和增长,那么你需要将上述所有内容组合起来,并将一个不断增长的螺旋线绘制到缓冲区,然后每帧以一个旋转的角度绘制缓冲区。

相关问题