Circle 그리기

이태현·2023년 10월 18일
0

2D primivives의 종류

  • elementry primitives
    • points, lines
  • additional primitives
    • circles, boxes, curves
  • processingn 2D primitives
    • rasterization

curve를 표현할 수 있는 2가지 방법

  1. polyline
    컴퓨터 그래픽스에서 polyline은 하나 이상의 연결된 직선 세그먼트로 구성된 연속선으로, 함께 모양을 구성한다.
    각 세그먼트의 끝점을 지정하여 polyline을 만들 수 있다.
  1. functions
    다음과 같은 식들로 curve를 표현할 수 있다.
    y=k=0nakxk,y=ex,y=logx,y=sinxy \,= \,\sum_{k=0}^na_{k}x^k,\, y\,=\,e^x,\,y\,=\,\log x,\,y\,=\,\sin x

원을 표현하는 방법

implicit function

(xxc)2+(yyc)2=r2(x-x_{c})^2+(y-y_{c})^2=r^2
f(x,y)=(xxc)2+(yyc)2r2=0f(x,y)=(x-x_{c})^2+(y-y_{c})^2-r^2=0

explicit function

y=yc±r2(xxc)2y=y_{c}\pm \sqrt{ r^2-(x-x_{c})^2 }

위와 같은 방법으로 원을 표현했을 때의 단점

  1. 계산량이 매우 많아진다.
  2. Non-uniform한 점이 찍히게 된다.
    a. 원을 구성하는 점들의 사이 거리가 균일하지 않게 된다.

uniform한 원을 그리는 방법

  • polar coordinate 이용
  • 여전히 계산이 복잡함
    x=xc+rcosθy=yc+rsinθx=x_{c}+r\cos \theta \\ y = y_{c}+r\sin \theta

Midpoint circle algorithm

자세히 알아보기
0°~45°사이의 8분원만 그리고, 나머지 부분은 대칭이동을 통해 적은 계산으로 원을 그릴 수 있다.

profile
할까말까 고민된다면, 일단 시작하자!

0개의 댓글