C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[70978] Re:2차원 배열로 원을 그리려고 합니다.
빌더초보 [] 3089 읽음    2014-02-28 18:10
조건문은 반지름이 중심이 (r,r) 이고 반지름이 r인 원을 기준으로 하고 있으나
시작범위는 0 부터 r 까지이므로 제대로 구해질수가 없죠.
아래와 같이 하시면 되겠습니다.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
	int r=20;
	int **CircleArray = new int*[r*2+1];
	for (int i = 0; i < r*2+1; i++) {
		CircleArray[i]= new int[r*2+1];
	}


	for(int nY = 0; nY<=r*2; nY++)
	{
		for(int nX = 0; nX<=r*2; nX++)
		{

			if (r*r > ((nX-r)*(nX-r) + (nY-r)*(nY-r)))
			{
				CircleArray[nX][nY] = 1;
			}
			else
			{
				CircleArray[nX][nY] = 0;
			}
		}
	}



	TMemo *Memo1 = new TMemo(this);
	Memo1->Parent=this;
	Memo1->Align=alClient;
	Memo1->Lines->Clear();
	Memo1->Font->Name="SYSTEM";

	for(int nY = 0; nY <= r*2; nY++)
	{
		Memo1->Lines->Add("");
		for(int nX = 0; nX <= r*2; nX++)
		{
			if (CircleArray[nX][nY])
			{
				Memo1->Lines->Strings[nY]=Memo1->Lines->Strings[nY]+"■";
			}
			else
			{
				Memo1->Lines->Strings[nY]=Memo1->Lines->Strings[nY]+"□";
			}
		}
	}
}




sunje 님이 쓰신 글 :
: 안녕하세요...
: 궁금한 것이 있어서 질문드리고자 합니다.
:
: 원을 그려서 2차원 배열에 담으려고 하는데요
: 일단 반지름을 r = 10로 잡고요 반지름 이내의 범위에 있는 것은 1로 하고 범위 밖의 값은 0으로 해서
: 2차원 배열에 저장하고 아래와 같이 출력을 받으려고 하는데요
:
: □□□□□□□■■■■■■□□□□□□□
: □□□□□■■■■■■■■■■□□□□□
: □□□■■■■■■■■■■■■■■□□□
: □□■■■■■■■■■■■■■■■■□□
: □□■■■■■■■■■■■■■■■■□□
: □■■■■■■■■■■■■■■■■■■□
: □■■■■■■■■■■■■■■■■■■□
: ■■■■■■■■■■■■■■■■■■■■
: ■■■■■■■■■■■■■■■■■■■■
: ■■■■■■■■■■■■■■■■■■■■
: ■■■■■■■■■■■■■■■■■■■■
: ■■■■■■■■■■■■■■■■■■■■
: ■■■■■■■■■■■■■■■■■■■■
: □■■■■■■■■■■■■■■■■■■□
: □■■■■■■■■■■■■■■■■■■□
: □□■■■■■■■■■■■■■■■■□□
: □□■■■■■■■■■■■■■■■■□□
: □□□■■■■■■■■■■■■■■□□□
: □□□□□■■■■■■■■■■□□□□□
: □□□□□□□■■■■■■□□□□□□□
:
:     int r = 10;
:     for(int nX = 0; nX<r; nX++)   
:         {
:          for(int nY = 0; nY<r; nY++)
:              {
:                   (r*r > (nX-r)*(nX-r) + (nY-r)*(nY-r))? 1 : 0;
:               }
:          }
:
: 위와 같은 방법으로 시도해 보았으나 잘 안되네요...
:
:

+ -

관련 글 리스트
70974 2차원 배열로 원을 그리려고 합니다. sunje 2778 2014/02/28
70978     Re:2차원 배열로 원을 그리려고 합니다. 빌더초보 3089 2014/02/28
70980         Re:Re:2차원 배열로 X, Y의 지름이 틀린 타원을 그리려면? sunje 2879 2014/03/03
70992             Re:2차원 배열로 X, Y의 지름이 틀린 타원을 그리려면? 빌더초보 3622 2014/03/05
70994                 Re:Re:답변 감사드립니다. Sunje 2744 2014/03/06
70976     Re:2차원 배열로 원을 그리려고 합니다. 주누 2905 2014/02/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.