- 음악과 나 -/『 짬 통 』

사각영역에 숨겨진 작은 비밀

noon2dy 2006. 5. 18. 02:33

 

2002-11-27 오후 3:16:03   /  번호: 5719  / 평점:  (9.0) category: Graphic  /  조회: 3,063 
 첨부파일 있음▣작은강좌▣ 사각영역에 숨겨진 작은 비밀 - #1 옹언욱 / unwook  
옹언욱님께 메시지 보내기  옹언욱님을 내 주소록에 추가합니다.  옹언욱님의 블로그가 없습니다  

============================================

        사각영역에 숨겨진 작은 비밀 # 1


                21 Nov, 2002

              Written by Un-Wook

============================================


- 차례 -

1. 서문
2. 주제
3. 원인
4. 재해석
5. 중요성
6. 정리


---------------------
 1. 서 문
---------------------

안녕하세요

강좌라구 하기엔 좀 부족하고.. 

이런글은 처음 써보거든요.. 그래도 용기를 내서 써보겠습니당..

제가 써보려는 내용은. 아시는 분들도 있을만하고 별거 아닌 내용일 수도있겠지만..

프로그래밍을 왠만큼 해보신 분들 중에도 이 부분까지는 생각 못해보신 분들이 많으신거 같더라구요.

별로 어려운 내용도 아니구, 쉽게 소설 읽는 느낌으로 읽어나가시도록 설명하려고 합니다.

근데 조금 길게 쓸겁니당..  별거 아닌걸 가지고 장황하게 썻다..라고 느끼시는 분도 계시겟지만.. 

원리부터 자세하게 풀어서 설명하기 위해서입니다.

그래도 긴 글 읽는거 딱 질색이신분들은 제가 첨부로 올리는 그림파일만 보셔두 되구요..

하지만 끝까지 읽어 보시면.. 분명히 도움이 되시고 의문점도 생기실 겁니다.

알고 계시면 나중에 어플리케이션 제작의 화면처리등에 유용하실 것 같아서 한번 써내려가 봅니당.

이 부분을 염두 안해주시면.. 

디스플레이 처리라던가 연산에 미세한 오차를 낼수가 있어요

그래픽 관련 어플리케이션을 개발중이신 분이시라면 

원리는 둘째치고 증상이라도 꼭 알아두시길 바랍니다.

그럼 시작해 보겠습니다.




---------------------
 2. 주 제
---------------------

무엇에 대하여 이야기하는 것인지 말씀드리기 전에..

우선 간단한 코드부터 갈겨 볼께요.

COLORREF    crBox= RGB(255, 0, 0);
CRect        rtBox(1, 1, 3, 3);

pDC->FillSolidRect(rtBox, crBox);


..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:

+* 보충 설명 *+  (안읽으셔두됨!!!!.. ㅡㅡ)

pDC는 CDC 객체의 포인터 입니다. (MFC 에서는 GDI 관련 부분을 CDC 클래스루 묶어놨죠)

RGB()는 wingdi.h 에 선언 되어있는, rgb 인자를 4바이트 컬러값으로 변환해주는 메크로 함수입니다.

FillSolidRect()는 WIN32 API 에는 없는 기능 같은데.. CDC 에서 제공되는 기능이고.. 
브러쉬 객채를 사용 안하면서도 속이 꽉찬 사각형을 그려줍니다.

..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:..:+:



WIN32 API 에선 GDI 함수 이용시 사각형 그리기등에 유용하게 사용하라고 RECT 구조체를 제공합니다.

MFC 에서는 CRect 라는 놈이 있구요..

위의 코드는 화면상에 어떤 결과를 가저올까요? 빨간색으루 채워진 쪼그미리한 사각형이 모니터에

그려지는 것은 확실한대.. 제가 이야기하고 싶은 것은..

과연 어느 영역에서 여느영역까지의 사격형이 그려지는가에 대한 내용입니다.

더불어 그 이유도 풀어 나가보려합니다.




---------------------
 3. 증 상
---------------------

다들 아시겠지만.. 클라이언트 윈도우 영역은 시작 픽셀 좌표는 0, 0 입니다. (별다른 설정이 없을때)

위의 코드는 좌표 1,1 부터 3,3 까지의 채워진 사각형을 그려주는 것인데요

그럼 화면상에 결과가 클라이언트 윈도우를 기준으로..

   0 1 2 3 4 5 6 ....
0 □□□□□□□
1 □■■■□□□
2 □■■■□□□
3 □■■■□□□
4 □□□□□□□
5 □□□□□□□
6 □□□□□□□
.
.
.


이런식으로 나오겠지요?..

지금 이부분에서.. 저게 아니다.. 라고 생각하시는 분들은

그래도 끝까지 한번 읽어보시기를 바랍니다.. (이 증상을 아시는 분들은 이해가 더 빨리오겠네요.)

저게 맞다구 생각되는 분들은.. 

제글을 끝까지 읽어 보시고 조금 고민해 보셔야 한답니다..

위의 코드로 얻어지는 결과는 직접 실행해보고 화면 돋보기로 한 10 배 확대해서 보시면 알겠지만..

다음과 같이 출력됩니다.

   0 1 2 3 4 5 6 ....
0 □□□□□□□
1 □■■□□□□
2 □■■□□□□
3 □□□□□□□
4 □□□□□□□
5 □□□□□□□
6 □□□□□□□
.
.
.

위와 같은 식으로 출력되죠..  

분명히 사각형 값은 (1, 1)~(3, 3) 인데 실제로는 위와 같이 출력됩니다..

픽셀 좌표 3, 3 까지 그려지지 않고 2, 2 까지만 그려집니다..

직접 해보세요.. 제 말이 맞습니다..  

모니터 뚫어저라 쳐다봐도 작아서 안 뵈일테니 돋보기 프로그램으로 확대해서 보세요..




---------------------
 3. 원 인
---------------------

그럼 이유를 설명하겠습니다. 중요한 부분입니당..

MS에서 사각형 객체인 RECT 라는 구조체를 디자인할 때 생각했던 것이 두가지가 있는데요..

사각영역이란 것은  4개의 꼭지점인 left, top, right, bottom의 값으로 구성된다는 것과 (너무 당연한 얘긴가 ㅡㅡ;)

              left     right 
                |        |
      top  --■■■■■
               ■■■■■
               ■■■■■
               ■■■■■
   bottom--■■■■■           (텍스트상이라 그리기가 무지 힘듬. 그림 이상해도 이해해 주셈..)


그리고 한가지 더.. 아래와 같은 공식입니다.

width= right - left;
height= bottom - top;

위의 공식은 그냥 봐도 알겠지만.. 구지 설명하자면..

right에서 left를 빼면 width(가로폭)을 얻을 수 있고

bottom에서 top을 빼면 height(세로폭)을 얻을 수 있도록 구현하자는 것이었습니다..

지금 설명한거.. 당연한거 같지요? 하지만 이것이 문제의 발단입니다..

위에 설명한건 조금 생각해봐야해요.. 생각해 보신후 정리가 되면 아래를 읽어주세요..




(1, 1)~(3, 3)이란 사각영역은 rigth= 3 이고 left= 1 이지요..

그런데 right-left 인  3-1 은 3이 안나오고 2가 나옵니다.. 

결과적으로 (1, 1)~(3, 3) 이란 사각형은 가로폭 2, 세로폭 2 라는 사각형이어야 한다. 라고 전제를 달았습니다. 

좀 억지스럽지만 위의 width= right-left 를 적용하기 위해선 별다른 방법이 없엇지요...

실제 화면으로 본다면 1, 1 부터 3, 3 까지의 사각형은 가로 세로가 3 픽셀씩 그려져야 하는데

모든 GDI 관련 함수가 사각영역을 width= right-left 라는 규칙으로 처리 되기때문에

(1, 1)~(3, 3) 라는 사각형은 (1, 1)~(2, 2) 으로 그려지게 됩니다.

이 방식 때문에.. 사각영역을 다룰때 프로그래머들은 많은 혼동을 가져오지요.. 

미처 이러한 사실을 모르는 상황이었다면 무엇때문에 오차가 나는가하는 의문을 가지게 될테구요..




---------------------
 4. 재해석
---------------------

그림을 좀 그려봤는데요.. 첨부된 그림을 봐주세요.. 

####### 여기서 첨부된 그림을 봐 주세요 ########

 


(그리느라 힘들었음 ㅡㅡ;)

이 그림을 보시구 이해해 보면..width= right-left 규칙이 그렇게 까지 억지스러운 것은 아니에요..

GDI는 사각영역에 대하여, 실제 픽셀들의 좌표와 다르게 

픽셀들의 경계점으로 보이는 격자 부분을 기준으로 좌표를 매기는 것이라고 해석할 수가 있습니다.

논리적인 좌표계를 사용한다는 얘기이지요.. 

오히려 사각영역에서는 이 방식이 옳은 것이 아닌가 생각됩니다.

그럼 width= right-left 라는 공식도 성립하면서, 

오차없이 제대로 그려지는 것이라고도 볼 수 있습니다

즉, 좌표를 매겨가는 기준이 실제 픽셀공간이냐? 아니면 격자부분이냐? 라는 차이가 이런 결과를 가져오는 것입니다.

(위의 내용은 저의 가설이기는 합니다..)




이러한 기준에서 만큼은 실행 결과가 원칙적으론 위배되지 않는다 해도..

프로그래머가 "논리적 좌표계"를 받아들이지 않는 이상..

무척 혼동된다는 것 만큼은 사실입니다.

프로그래머는 좌표계에 대한 고정 관념을 바꾸어야 합니다.

픽셀 하나가 좌표가 아니라는 겁니다.




그리고 논리적 좌표계를 사용하면 이점도 있습니다.

그것은 궁금하신 분이 계시다면 다음기회에 설명해 드리지요.




---------------------
 5. 중요성
---------------------

이게 뭐 대단한가? 라고 생각하실 분 계실지 모르겠습니다만.. (사실 대단한건 아니죠..)

이런 것을 신경 안쓰고 어플리케이션의 디스플레이 처리를 작성한다면.. 

그 어플리케이션은 언제나 1 픽셀의 오차로 구동되는 

버그 아닌 버그를 지니게 된답니다..




디스플레이 처리가 핵심인 어플리케이션이라면.. 1 픽셀의 차이는 적지 않게 중요합니다.

포토샵에서 사각 영역을 잡는데 1 픽셀씩 오차가 난다구 생각해보셔요.. 웃기잖아요..

실제로 포토샵에서 블럭잡을때 오른쪽 아랫쪽 귀탱이가 1픽셀 오차납니다..

이건 단적인 예를 든것이고 별로 문제되지 않는 사항이지만..

다른 부분에서 분명히 문제 될일이 발생합니다. 




별거 아닌것 같지만 1 이라는 오차는 디스플레이에서 뿐만 아니라..

전반적인 프로그래밍에서 심각한 문제를 발생시키는 원인으로 작용될 수가 있습니다.




---------------------
 6. 정 리
---------------------

이제 말씀 다 드렸구.. 정리를 해볼께요

프로그래머는 사각형을 그리려고 CRect나 RECT 구조체에 값을 넘길때

넘겨주는 그 사각영역의 값은 실제 화면 픽셀과 매칭되는 값이 아니다! 라는 것을 늘 상기해 두셔야 합니다.

좀더 고차원 적으로 생각하길 원하시는 분들은

내가 CRect 등에 설정하는 값은.. 논리적인 좌표값이다.. 라고 생각하시길 바라구요.




화면상의 그려지는 증상을 화두로 이야기를 시작했지만.. 

제가 하고싶었던 얘기는 "논리적인 좌표계"에 대한 내용이었습니다.

다음번 강좌에서는 CRect 를 사용하면서 

논리적 좌표계를 염두하지 않으면 발생되는 문제점에 대해서 이야기해 보겠습니다.




별 대단한 내용도 아니고 어떻게 보면 미묘한 부분이기도 하지만..

무조건 -1 이라다고 생각하는 것보단.. 왜 그런 것인가에 대해 이야기 해보고 싶었습니다.

그럼..

이만 줄이겠습니다.

끝까지 읽느라고 수고하셨어요.^^




마침.

이 글에 평점 주기:  
 
  2002-11-27 16:07:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  이영한 / devil201  
이영한님께 메시지 보내기  이영한님을 내 주소록에 추가합니다.  이영한님의 블로그가 없습니다.  
앗~ 좋은 강좌 넘 감사요~!! -_-
  2002-11-28 14:06:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  박대근 / park0242  
박대근님께 메시지 보내기  박대근님을 내 주소록에 추가합니다.  박대근님의 블로그가 없습니다.  
(..)* 잼있는 내용이네요 ^^
  2002-11-28 15:12:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  옹언욱 / unwook  
옹언욱님께 메시지 보내기  옹언욱님을 내 주소록에 추가합니다.  옹언욱님의 블로그가 없습니다.  
관심 가져주셔서 감사 : )
  2002-12-04 16:24:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  한명수 / jalnan@hotmail.com  
한명수님께 메시지 보내기  한명수님을 내 주소록에 추가합니다.  한명수님의 블로그가 없습니다.  
오옷.. 어쩐지 몬가 화면에 뿌릴때마다 찝찝했는데 이거였군....^^ 아니었나?....
  2003-01-02 14:49:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  이희락 / rakpro  
이희락님께 메시지 보내기  이희락님을 내 주소록에 추가합니다.  이희락님의 블로그가 없습니다.  
처음 설계부터 잘못됐습니다. width = right - left + 1 이 되어야 합니다. 이건 초등수준 산수입니다.
  2003-01-02 14:50:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  이희락 / rakpro  
이희락님께 메시지 보내기  이희락님을 내 주소록에 추가합니다.  이희락님의 블로그가 없습니다.  
결론은 MS는 바보다.. ㅋㅋ
  2003-02-20 10:16:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은...  김병환 / kimokook  
김병환님께 메시지 보내기  김병환님을 내 주소록에 추가합니다.  김병환님의 블로그가 없습니다.  
우와 정말 모르고 지나칠뻔한 내용들입니다 또 하나의 의문 풀렸어요 그리고 그림 잘 그렸내요 ㅋㅋ
  2004-10-07 09:43:00
 Re: 슬픔 ▣작은강좌▣ 사각영역에 숨겨진 작은...   최정선 / jjan514  
최정선님께 메시지 보내기  최정선님을 내 주소록에 추가합니다.  최정선님의 블로그가 없습니다.  
사각형 말고 다각형을 그릴땐 단순한 산수문제에 그치지 않더군요..
문제가 좀 심각해져요..ㅠㅠ

 

2002-11-27 오후 3:20:20   /  번호: 5720  / 평점:  (9.0) category: Graphic  /  조회: 1,773 
 첨부파일 있음▣작은강좌▣ 사각영역에 숨겨진 작은 비밀 - #2 옹언욱 / unwook  
옹언욱님께 메시지 보내기  옹언욱님을 내 주소록에 추가합니다.  옹언욱님의 블로그가 없습니다  

============================================

        사각영역에 숨겨진 작은 비밀 # 2


                27 Nov, 2002

              Written by Un-Wook

============================================


- 차례 -

1. 서문
2. CRect와 논리적 좌표계
3. CRect의 유용한 기능
4. 논리적 좌표계에서의 비사각영역
5. 비사각영역의 연산
6. 마치며


-----------------------------
 1. 서문
-----------------------------

1회분으로 작성한 글은 잘 보셨는지요.? 

처음 시작해보는 강좌여서 많이 서툴렀을거라고 생각되네요.

1회를 올리지도 않고 바로 2회를 동시에 올리게 되서 반응도 모르는 상황이지만

이왕 시작했으니 그냥 제맴대로 갈때까지 써보렵니다..




전강좌에서는 실용적인 측면을 예를 들어 논리적 좌표계에 대한 설명을 드렸고,

이번 강좌에서는 CRect 클래스와 더불어 이야기를 풀어 나가보려고 합니다.

CRect와 "논리적좌표계"의 상관관계를 풀어 나가보는게 이 글의 주제가 될 것 같네요.

CRect의 유용한 기능도 몇 가지 소개해드릴 거구요..

논리 좌표계이기때문에 발생하는 문제점에 대해서도 이야기 해보렵니다..

1회분을 읽지 않으시고 이 글을 읽으시면 조금 혼동 스러우실 테니.. 1회를 먼저 읽어주시기 바랍니다.




-----------------------------
 2. CRect와 논리적 좌표계
-----------------------------

1회에서 설명했던 width= right-left 라는 규칙 (논리적 좌표계를 사용하는 규칙)은.. 

MFC 에 와서도 CRect라는 클래스에서 그대로 고수하게 됩니다. 

아래 코드를 보시면

CRect    rtBox(1, 1, 3, 3);
int     nWidth= rtBox.Width();

위의 코드를 돌려보면.. nWidth 로는 2 라는 값이 넘어오지요..

(1,1)~(3,3) 의 가로폭은 2라는 의미 이고..

rtBox은 "논리좌표계"상의 좌표값으로 초기화 한것이라고 볼 수 있습니다.




아래 코드도 보시면

CRect    rtBox(1, 1, 3, 3);
CPoint    pt1= rtBox.TopLeft();
CPoint    pt2= rtBox.BottomRight();

pt1 에는 1, 1 이 들어오고

pt2 에는 3, 3 이 잘 들어옵니다.. nWidth 가 2 인데도 이런 값이 넘어오는 걸 보면

이 경우에도 논리적 좌표값이 넘어온 것이지요.




여러가지 상황을 테스트 CRect 에 쳐박혀있는 값은 논리좌표계 상의 값이라고 결론내릴 수가 있습니다.

CRect 에 들어가있는 값이 논리좌표계라는 것이 중요합니다!!..

이 사각영역을 화면에 출력할때는 스크린과 일치하지 않는 다는 것은 제가 1편에서 빡터지게 설명해드렸슴니당..

가물가물 하시면 1편을 다시 읽어보세요.. 꼭... 

논리좌표계의 의미를 꼭 이해하셔야 합니다.




-------------------------
 3. CRect의 유용한 기능
-------------------------

본론을 말씀드리기 전에 CRect 의 기능 몇가지를 소개해 드리겠습니다.

(아직 모르시는 분들도 계실테니.. 집구 넘어가야 설명이 진행될것 같아요..)




### 여기서 첨부한 그림을 봐 주세요 ###

 



그림과 같이 2 개의 사각형이 차지하는 총 사각영역을 (첨부된 그림파일의 왼쪽 아래 처럼..)

이것을 얻어오려면 어떻게 해야할까요

2 개의 사각영역의 원소들을 모두 비교 검사하여 값을 얻어오면 되기야 되겠죠..

그런데 CRect 에서 그런 기능도 지원을 해주거든요..

오버로딩된 연산자중에 | (or) 연산자가 그기능을 해줍니다.

다음과 같은 코딩으로 원하던 값을 얻어올 수 있겠군요 그럼..

    CRect        rtBox1(1, 1, 3, 3);
    CRect        rtBox2(2, 2, 5, 5);
    CRect        rtBox3= rtBox1 | rtBox2;

rtBox3 에는 원하던 사각영역이 들어오게 됩니다.




혹은 첨부된 그림파일의 오른쪽 아래 그림처럼 

두 사각영역의 교집합격인 영역을 얻어오려면

& (and) 연산자를 사용하시면 됩니다

    CRect        rtBox1(1, 1, 3, 3);
    CRect        rtBox2(2, 2, 5, 5);
    CRect        rtBox3= rtBox1 & rtBox2;

위와 같은 코딩으로 rtBox1 과 rtBox2 의 교집합 격인 사각영역이 rtBox3 에 얻어집니다.

편리하지요?




그밖에도 여러가지 연산자들이 오버로딩 되어있어.. 참 편리하답니다.

각각의 연산자 함수는 특정한 기능이 정의되어 있습니다.

CRect 의 편의 기능에 대한 강좌는 이니지만.. 참고루 MSDN의 내용을 뿌려봅니당..^^

operator LPCRECT     Converts a CRect to an LPCRECT. 
operator LPRECT     Converts a CRect to an LPRECT. 
operator =         Copies the dimensions of a rectangle to CRect. 
operator ==         Determines whether CRect is equal to a rectangle. 
operator !=         Determines whether CRect is not equal to a rectangle. 
operator +=         Adds the specified offsets to CRect or inflates CRect. 
operator ?=         Subtracts the specified offsets from CRect or deflates CRect. 
operator &=         Sets CRect equal to the intersection of CRect and a rectangle. 
operator |=         Sets CRect equal to the union of CRect and a rectangle. 
operator +         Adds the given offsets to CRect or inflates CRect and returns the resulting CRect. 
operator ?         Subtracts the given offsets from CRect or deflates CRect and returns the resulting CRect. 
operator &         Creates the intersection of CRect and a rectangle and returns the resulting CRect. 
operator |         Creates the union of CRect and a rectangle and returns the resulting CRect.

연산자 오버로딩은 중요한 거고 자주 등장하는 말이기도 하구요

아직 연산자 오버로딩을 모르셨다면 CPP 서적이나 다른 강좌를 참고 하시기를 바래요..

이 강좌가 오버로딩에 대한 이야기는 아니니까요..




------------------------------------
 4. 논리적 좌표계에서의 비사각영역
------------------------------------

아래 부분 부터는 제가 궁극적으로 이야기 해 보고싶었던 내용입니다.

사실은 제가 아래와 같은 문제에 봉착한 것이 이 강좌를 쓴 계기가 되었어요..

비사각영역이라는 말이 괜히 거창해 보이는데 별 얘기 아닙니다..




(5, 5, 5, 5) 같은 사각영역은 과연 무엇을 의미할까요?..

픽셀 좌표계라면 점 하나의 사각형이라고 볼 수 있겠지만..

논리적 좌표계로 본다면 이것은 사각형이라고 볼 수 없습니다..

제가 1회 강좌에 그려서 첨부한 그림파일을 보시고 판단해 보세요. 

논리적 좌표계에서 (5, 5, 5, 5) 는 사각영역이 아니라 그냥 無라는 의미입니다.

이것이 CRect 가 논리 좌표계를 이용한다는걸 역설해주고 있는 부분이구요.



------------------------
 5. 비사각영역의 연산
------------------------

CRect 에 (5, 5, 5, 5)라고 영역을 정의하고 연산할경우.. 

사각형으로 취급하지 않기 때문에 연산후에 원하는 결과를 얻어오지 못할 것입니다.

궁금하신 분들은 아래의 두가지 코드를 직접 돌려보시기 바랍니다. 

rtBox3 가 각각의 경우에서 어떤 값을 갖게 되는지..


예1) 
    CRect        rtBox1(1, 1, 3, 3);
    CRect        rtBox2(5, 5, 6, 6);        // (5, 5, 6, 6) -> 정상적인 사각영역
    CRect        rtBox3= rtBox1 | rtBox2;    // 바른 결과 나옴

예2)
    CRect        rtBox1(1, 1, 3, 3);
    CRect        rtBox2(5, 5, 5, 5);        // (5, 5, 5, 5) -> 정상적인 사각형이 아님(비사각영역)
    CRect        rtBox3= rtBox1 | rtBox2;    // rtBox3 에는 원하는 결과가 얻어지지않음




-----------------------------
 6. 마치며
-----------------------------

이것으로 이번 강좌를 마칩니다.

지금까지의 내용을 정리해보면.. 

CRect 에 넣는 값은 "논리 좌표값" 이라고 생각해야 된다는 것이며

논리 좌표계에서는 "비사각영역"이 존재한다는 것입니다.

비사각영역으로 연산할경우 원하지 않던 결과가 도출된다는 현상도 말슴드렸구요..




제가 지금까지 글을 쓰면서 "픽셀 좌표계" 와 "논리적 좌표계" 라는 용어를 사용했습니다.

하지만 이것은 중요하지 않습니다.

physical coordinates / logical coordinates 라고 불릴수도 있고

픽셀 좌표계 / 픽셀 격자 외각 기준 좌표계라고도 불릴 수 있는 것입니다.




콩떡을 콩떡이라고 부르고 팥떡을 팥떡이라고 부르는데 

왜 콩이 콩이고 팥이 팥이랍니까?.. 다 그냥 규약같은 겁니다.

음냥.. 쫌 무식한 예를 들긴 했지만..

아직 이부분에 다루시는 분도 못봤고, 이것에 대한 명확한 용어를 보지 못해서 

최대한 의미를 살려서 "픽셀좌표계" "논리좌표계" 란 용어를 사용하였습니다.




원리를 이해하지 못하고 용어를 구사하는 것은 인생을 살아가는데 도움이 안됩니다.

기초적인 부분과 원리를 이해한다면 용어 자체는 문제될 것이 아니랍니당..

(하지만 기왕이면 모두가 쓰는 용어를 사용하는게 좋지요.)




그리고 이 강좌는 제가 데브피아 회원님들에게 도움드리려고 쓴 글이니

무단전재 하시거나 퍼가지 않으셨으면 해요...




지금까지 2회에 걸쳐서 이야기를 써봤는데.. 얼마나 잘 전달됐을지 모르겠네요.

정리한 내용은 쫌 더 있는데, 기회 봐서 담회 쓰던가 할께요.. 

왠지 마지막에 야리꾸리한 얘기로 끝내는거 같아서 찝찝하네용..



그럼 이만..

읽으시느라 수고하셨어요^^




마침.

이 글에 평점 주기:  
 
  2002-11-28 08:35:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  이대근 / altes  
이대근님께 메시지 보내기  이대근님을 내 주소록에 추가합니다.  이대근님의 블로그가 없습니다.  
& 에서 교집합이 아니라 공집합이라고 적으셨네요 .
  2002-11-28 08:35:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  이대근 / altes  
이대근님께 메시지 보내기  이대근님을 내 주소록에 추가합니다.  이대근님의 블로그가 없습니다.  
좋은 글 감사합니다 . :)
  2002-11-28 08:38:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  옹언욱 / unwook  
옹언욱님께 메시지 보내기  옹언욱님을 내 주소록에 추가합니다.  옹언욱님의 블로그가 없습니다.  
아아.. 죄성..^^; 수정했어요. 왜전 자꾸 공집합이랑 교집합이 햇깔리는지..^^
  2002-11-29 11:19:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  신창식 / Panz  
신창식님께 메시지 보내기  신창식님을 내 주소록에 추가합니다.  신창식님의 블로그가 없습니다.  
잘 읽었습니다~
  2002-12-04 17:12:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  이정균 / eightbit  
이정균님께 메시지 보내기  이정균님을 내 주소록에 추가합니다.  이정균님의 블로그가 없습니다.  
RECT의 line과 POINT는 화면해상도가 낮아 픽셀width로 그려지지만,
  2002-12-04 17:14:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  이정균 / eightbit  
이정균님께 메시지 보내기  이정균님을 내 주소록에 추가합니다.  이정균님의 블로그가 없습니다.  
실제로 RECT를 구성하는 LINE은 면적을 가지지 않는다는게 핵심인듯합니다.
  2002-12-04 17:17:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  이정균 / eightbit  
이정균님께 메시지 보내기  이정균님을 내 주소록에 추가합니다.  이정균님의 블로그가 없습니다.  
SetViewPortExt()로 확대후에 CRect를 그려보면 Pixel사이에 Line이 그려집니다.^^
  2002-12-04 17:20:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  이정균 / eightbit  
이정균님께 메시지 보내기  이정균님을 내 주소록에 추가합니다.  이정균님의 블로그가 없습니다.  
좋은 강좌감사합니다. 헷깔리기 쉬운건데 잘 설명해주셨네요.
  2002-12-05 02:43:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  옹언욱 / unwook  
옹언욱님께 메시지 보내기  옹언욱님을 내 주소록에 추가합니다.  옹언욱님의 블로그가 없습니다.  
옙~ 맞습니다^^ 관심 가져주셔서 감사 :)
  2003-02-20 10:32:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  김병환 / kimokook  
김병환님께 메시지 보내기  김병환님을 내 주소록에 추가합니다.  김병환님의 블로그가 없습니다.  
우와 갈수록 그림을 잘 그리시는데요 좋은 자료 감사합니다
  2003-03-08 10:38:00
 Re:  ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  김경문 / shoo44  
김경문님께 메시지 보내기  김경문님을 내 주소록에 추가합니다.  김경문님의 블로그가 없습니다.  
굿 감사
  2005-01-28 12:10:00
 Re: 좋음 ▣작은강좌▣ 사각영역에 숨겨진 작은 ...  손태호 / sontaeho  
손태호님께 메시지 보내기  손태호님을 내 주소록에 추가합니다.  손태호님의 블로그가 없습니다.  
매우 만족합니다. ^^ 정말 고맙습니다. 전혀 몰랐던 부분입니다.

'- 음악과 나 - > 『 짬 통 』' 카테고리의 다른 글

fps 계산하기  (0) 2006.05.18
저수준제어를 이용한 wave재생 - 소스 , wavescope  (0) 2006.05.18
bit를 이해하자  (0) 2006.05.18
배열과 포인터는 전혀 다르다  (0) 2006.05.18
알고리즘 강좌  (0) 2006.05.18