2010.09.12 16:27
왜, 베지에 곡선 4개로 원을 그릴수 없을까?
(with class)

음, 내가 만들었던 클래스 중에 'drawArc' 를 보면, 원을 그릴땐(호는 어차피 원의 일부이므로) 베지에 곡선을 8개를 사용했다.

4개를 이용해서 그렸을때와 8개를 이용해서 그렸을때를 비교해보면, 많은 차이가 난다.

지금은 휴가중이라 코딩이 귀찮아서 그냥 말로;;;;;;;;;;;;;;;;;;;;설명 하겠다.(플래시의 팬툴로 그려봤는데, 팬툴은 2차 베지에가 아닌듯. 그래서 정원이 비슷하게 나마 그려짐.)

2차 베지에로 그리게 되면, 각 코너부분이 과하게 구부려져있어서, 왠지 라운딩 된 박스느낌이 난다.

따라서, 2차 베지에로 그릴땐 8개를 사용한다. (또는 그 이상)

출처 : 위키백과(eng)



위 그림에서 처럼, 왼쪽그림이 2차 베지에 곡선으로 만든것이다. 각 네모는 꼭지점이고(앵커),  초록 동그라미는 컨트롤러다. 보면, 8개의 베지에 곡선을 사용한걸 알 수 있다. (Quadratic 이 2차라는 뜻)

하지만, 오른쪽 그림은 큐빅 베지어, 즉, 3차 베지에 곡선을 사용했다. (as3.0에도 2차 이상 베지에 곡선 그리기가 가능했었나?)

그래서 3차로는 4개 만으로도 정원을 구현할 수 있다.

음,,,, 오늘 이 포스팅을 한 이유는 요즘 지니이펙트와 관련해서 스플라인(spline)과 베지에 곡선을 연구중에 있기때문.

스플라인은 늣풀님의 포스팅을 참고하며 보고 있고, 베지에는 위키에서 찾아보며 구현하고 있다.

그래서 완성한 함수!(내가 만든 Math2 클래스에 넣었다.ㅋㅋ)

구간을 [0, 1]로 정규화 시킨 함수이다. (휴가때 이런짓을 하고 있다니;;;;ㅋㅋ 그래도 재밌다.ㅋㅋㅋ)


(코딩을 발로 밖에 못해서 죄송합니다....)

반복되는 계산부분을 빼서 함수로 만들려고 했는데 귀찮아서 패쓰.............................;;

2차를 만들었으니, 3차도 만들 생각!...ㅋㅋ

베지에 곡선에 관심을 가지게 된 이유가 바로 지니이펙트 때문(위에서 말했듯이.)

지니이펙트에서는 처음과 끝이 극한형이 아닌 딱 그 값에 맞아야 하기 때문에 베지에 또는 스플라인이 적당했다.

둘중 제일 친숙한게 베지에라서 베지에를 이용해서 구현해보았다. (아니, 어쩌면 스플라인이던 베지에던 공식만 넣으면 끝.)

심심풀이 무비를 테스트 해보자.
(클릭하면 랜덤 컨트롤러를 만들어 베지에 곡선을 만든다.)


[0, 1]에 정규화 시킨 함수기 때문에 값을 넣어서 사용하기가 편하다. (나만 그런가?)

이제, 지니 이펙트나 구현해봐야 겠다...(그동안 너무 안해서 코딩이 조금은 힘들군...)

그나저나 오랜만에 하는 포스팅이라 재미가..ㅋㅋ
저작자 표시 비영리 변경 금지
신고
Trackback 0 Comment 1
  1. Favicon of http://estellesiahome.tistory.com BlogIcon 에스텔시아 2010.09.16 22:11 신고 address edit & del reply

    남은 군대생활 되도록 편하게 보내시길 참고로 나 노인이예여ㅇㅅㅇ



티스토리 툴바