2017-09-16 79 views
-1

所以我是Java的初學者,最近對使用Processing的基本Applets感興趣。我試圖做一個旋轉的螺旋這樣的: 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); 

    } 
} 

,但我不知道該怎樣讓它旋轉像圖像中的想法。 。 有什麼建議麼??

回答

3

堆棧溢出不是真的爲一般的「我該怎麼做」類型的問題而設計的。這是針對具體的「我試過X,預計Y,但得到Z」類型的問題。但我會盡力在一般意義上提供幫助。

基本上,創建一個動畫,你需要做三件事情:

  • 創建一些變量持有場景的狀態。
  • 使用這些變量繪製你的場景的每一幀。
  • 隨着時間的推移改變這些變量以使場景發生變化。

無恥的自我推銷:我在加工可用的here上寫了一個關於動畫的教程。

實際上你已經在使用你當前的代碼來做這件事了,但是你遇到了一個障礙,因爲你實際上談論了兩種不同類型的動畫,這些動畫之間存在競爭。

我的意思是,看看你的示例動畫:螺旋旋轉,但請注意,它實際上並沒有增長。每次都是一樣的旋轉,只是旋轉。將它與你的螺旋進行比較,螺旋的每一幀都在不斷增長。所以,你的第一步是準確地決定你的動畫要做什麼:它是一個正在增長的螺旋,還是一個旋轉的螺旋,或者兩者兼而有之?

如果你想讓你的螺旋旋轉,那麼你必須通過調用background()函數作爲draw()函數的第一行來清除舊的幀。這意味着你必須重新繪製你的整個螺旋!但你會以旋轉的角度畫出它。如果隨着時間的推移改變角度,那麼螺旋會旋轉。

您也可以使用createGraphics()函數將您的螺旋一次繪製到緩衝區。然後,您可以每次都將緩衝區繪製到屏幕上,而不是重繪整個螺旋。只需旋轉緩衝區即可旋轉螺旋。

如果它要同時旋轉和成長,那麼你會希望所有在轉角每一幀結合上面的畫一個螺旋式增長到緩衝區,然後繪製緩衝區。