이 얼마나 오랜만에 써보는 포스팅인지 모르겠습니다. 요즘 이러 저런 일로 바쁘다보니 블로그 관리에 매우 소홀했습니다. 이제 부터라도 짬짬히 시간을 내어.. 일상 업무에서 찾은 내용을 올리도록 노력 해야겠습니다. 해서… 알고보면 매우 간단한 내용이지만 포스팅 하나 올려봅니다.
오늘, 열심히 코드를 작성하던 중에.. 2차원에서 타원을 구성하는 좌표를 뽑아 낼 필요가 있었습니다. Needs는 하나의 타원과 또 다른 하나의 폴리곤을 하나의 도형으로 합(Union)하는 연산이 필요할듯 한데… 타원에 대한 정보는 단순히 중심점과 장반경 그리고 단반경만을 가지고 있음으로 폴리곤에 바로 합할 수 없는지라.. 일단 타원을 구성하는 정점을 이용하여 폴리곤으로 만들고.. 폴리곤과 폴리곤의 합 연산을 통해 원하는 결과를 얻고자 함이였습니다.
간단히 타원의 공식은 인터넷(http://en.wikipedia.org/wiki/Ellipse)을 통해 아래처럼 얻었습니다. 물론 프로그래밍에서 쉽게 사용할 수 있는 매개변수방정식으로 말입니다.
위의 식에서 Xc와 Yc는 타원의 중심입니다. 그리고 A와 B는 각각 X축과 Y축에 대한 타원의 반경이며 각각을 장축과 단축이라고 하겠습니다. 그리고 t는 0도에서 360도까지의 범위입니다. 물론 0도와 360도는 동일하므로 둘 중 하나는 포함되지 않아야 합니다. 마지막으로 ∅는 장축과 X축이 이루는 각도 입니다. 즉 ∅를 통해 기울어진 타원을 구성하는 좌표를 정의할 수가 있습니다. ∅에 대한 이해를 돕기 위해 아래 그림을 참고 하시기 바랍니다.
좋은글 감사합니다.
성민규님, 댓글 감사합니다~ 제가 아는 분과 동명이시네요~ 그분 이신가 싶습니다..
좋은 정보 감사 합니다
댓글 감사드립니다.
최고 ㅠㅠ 감사합니다.
별말씀을요.. ^^
댓글에 대한 감사가 늦었네요!
댓글 감사드립니다!
좋은 글 담아갑니다 ^ -^/
감사합니다!
정보 감사합니다. 질문 드렸었는데 해결해서 자삭했습니다~^^;;
물론 0도와 360도는 동일하므로 둘 중 하나는 포함되지 않아야 합니다.
▲ 이 말씀은 틀렸는데요. Cos(t) Sin(t) 에 359.9 까지만 입력하면 그리다 말아버리니
360까지 다 입력해야 합니다.