2017-09-16 4 views
-1

저는 Java의 초보자이며 최근에 Processing을 사용하는 기본 애플릿에 관심이 있습니다. 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() 함수를 호출하여 이전 프레임을 지워야합니다. 즉, 다시 나선형으로 다시 그려야 할 것입니다! 그러나 회전 된 각도로 그릴 것입니다. 시간이 지남에 따라 각도를 변경하면 나선형이 회전합니다.

createGraphics() 기능을 사용하여 나선을 한 번 버퍼에 그릴 수도 있습니다. 그런 다음 전체 나선형을 다시 그리는 대신 버퍼를 화면에 그릴 수 있습니다. 버퍼를 회전하여 나선을 회전 시키면됩니다.

만약 당신이 회전하고 성장하기를 원한다면, 위의 모든 것들을 결합하고 성장하는 나선형을 버퍼에 그리고 각 프레임마다 회전 된 각도로 버퍼를 그려야 할 것입니다.