원의 중심과 반지름을 이용한 원 그리기 C++
Canvas 에 원을 그리기 위해서 Ellipse 멤버함수를 사용하는데 이 함수가 사각형에 내접하는 원을 그리는 방식이라
타원이 그려지게 되죠.. 정원을 그리기 위해서는 정사각형을 구현해야 합니다.
그래서 원의 중심점과 반지름 위치의 점을 이용하여 정원을 그리는 방식으로 코드를 만들어 보았습니다.
void Calcu_Circle_Position(POINT Center, POINT Radius, POINT* StartPos, POINT* EndPos)
{
int dx, dy, radius ;
dx = (Radius.x - Center.x) * (Radius.x - Center.x) ;
dy = (Radius.y - Center.y) * (Radius.y - Center.y) ;
radius = sqrt((double)(dx+dy)) ;
StartPos->x = Center.x - radius ;
StartPos->y = Center.y - radius ;
EndPos->x = Center.x + radius ;
EndPos->y = Center.y + radius ;
}
함수 사용방법은
POINT Center, Radius, StartPos, EndPos ;
/****************
Center : 원의 중심점의 좌표값
Radius : 반지름에 해당하는 좌표값
*****************/
Calcu_Circle_Position(Center, Radius, &StartPos, &EndPos) ;
Canvas->Ellipse(StartPos.x, StartPos.y, EndPos.x, EndPos.y) ;
이렇게 사용하시면 됩니다.
'Software > C++ Builder' 카테고리의 다른 글
Gradation 기능 구현 C++ (0) | 2023.03.23 |
---|---|
uSec 딜레이 구현 함수 C++ (0) | 2023.03.21 |
실행중인 화면을 jpeg 이미지로 저장 C++ (0) | 2023.03.17 |
boost 라이브러리의 링버퍼(circular buffer) 사용방법 (0) | 2023.02.06 |
(C++) 폴더안에 특정 확장자를 가지는 파일들을 찾는 함수 구현 (0) | 2023.02.06 |