|
|||||
- File #1 : Image0901.jpg(), Download : 22 |
¿À´ÃÀº ¸î °¡Áö µµÇüÀ» ȸ鿡 ±×·Áº¾´Ï´Ù. 1. »õ·Î¿î ÇÁ·ÎÁ§Æ® Exam10À» ¸¸µì´Ï´Ù. 2. ½Ã°£ÀÌ ³²À¸½Ã´Â ºÐ, ±ä Äڵ带 Ʋ¸®Áö ¾Ê°Ô ÀÔ·ÂÇÒ ÀÚ½ÅÀÌ ÀÖÀ¸½Å ºÐÀº ¾Æ·¡ Äڵ带 WinMain ÇÔ¼ö À§¿¡(Æò¼Ò MyTextOut ÇÔ¼ö¸¦ Ãß°¡ÇÏ´ø ÀÚ¸®) Ãß°¡ÇÕ´Ï´Ù. void MyFloodFill( HDC hdc, int x, int y, COLORREF cr ) { int qx[ 1120 ]; int qy[ 1120 ]; int head; int tail; int mx, my; int i; COLORREF co, po; co = GetPixel( hdc, x, y ); if( co == cr ) return; head = 1; tail = 0; qx[ 0 ] = x; qy[ 0 ] = y; SetPixel( hdc, x, y, cr ); while( head != tail ) { x = qx[ tail ]; y = qy[ tail ]; tail++; if( tail >= 1120 ) tail = 0; for( i=0; i<4; i++ ) { mx = x; my = y; switch( i ) { case 0 : mx++; break; case 1 : my++; break; case 2 : mx--; break; case 3 : my--; break; } if( mx < 0 || my < 0 || mx >= 240 || my >= 270 ) continue; po = GetPixel( hdc, mx, my ); if( po == co ) { SetPixel( hdc, mx, my, cr ); qx[ head ] = mx; qy[ head ] = my; head++; if( head >= 1120 ) head = 0; } } } } Á» ±æÁÒ? ÀÌ ÄÚµå´Â µ¥½ºÅ© ž À©µµ¿ì OS ¿¡´Â ÀÖ´ø ÆäÀÎÆ®(»öÄ¥) ÇÏ´ø ÇÔ¼ö FloodFillÀÌ WinCE API¿¡´Â ¾ø¾î¼ Á¦°¡ ÀÓÀÇ·Î ¸¸µé¾î º» °ÍÀÔ´Ï´Ù. Å¥ ÀڷᱸÁ¶¸¦ ÀÌ¿ëÇؼ ÆäÀÎÆ® ÇÏ´Â °ÍÀε¥ GetPixel(ÁöÁ¤µÈ ÀÚÇ¥ÀÇ Á¡ »öÀ» ¾Ë¾Æ³»´Â ÇÔ¼ö) °ú SetPixel(ÁöÁ¤µÈ ÁÂÇ¥¿¡ Á¡À» Âï´Â ÇÔ¼ö)À» »ç¿ëÇß´õ´Ï ¸Å¿ì ´À¸®°Ô µ¿ÀÛÇÕ´Ï´Ù. ±×·¡¼ ¸Þ¸ð¸®¸¦ Á÷Á¢ Á¦¾î ÇÏ·Á°í ½ÃµµÇß´õ´Ï PDA°¡ ¹Ù·Î ´Ù¿îµÇ¾î ¹ö¸®°í ¾×Ƽºê¾ÅÅ© Á¶Â÷ Àß µ¿ÀÛÇÏÁö ¾Ê¾Æ °í¼ÓÈ´Â Æ÷±âÇß½À´Ï´Ù. (´Ù¸¥ ¹æ¹ýÀ¸·Î ´õ »¡¸® ÇÒ ¼ö´Â ÀÖÁö¸¸ Á» °í³À̵µÀÇ ±â¼úÀÌ ÇÊ¿äÇÑÁö¶ó Áö±Ý ÁÖÁ¦¿Í´Â ¸ÂÁö ¾Ê¾Æ ÀÌ Á¤µµ¿¡¼ ³¡³À´Ï´Ù. -..- ) º°·Î À¯¿ëÇÑ ÇÔ¼ö°¡ ¾Æ´Ï´Ï ÀÔ·ÂÇÏÁö ¾ÊÀ¸¼Åµµ µË´Ï´Ù. ´ë½Å ´ÙÀ½¿¡ ³ª¿À´Â ÄÚµå Áß MyFloodFill ºÎºÐÀº ³ÖÁö ¾ÊÀ¸¸é µË´Ï´Ù. ¼³¸íµµ »ý·«ÇÕ´Ï´Ù. ±Ã±ÝÇϽŠºÐÀº Á÷Á¢ ºÐ¼®ÇØ º¸½Ã±æ... 3. WndProc ÇÔ¼ö·Î À̵¿ÇÕ´Ï´Ù. ±×¸®°í WndProc ÇÔ¼öÀÇ TCHAR szHello[MAX_LOADSTRING]; ¾Æ·¡¿¡ ¾Æ·¡¿Í °°ÀÌ º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù. ...... PAINTSTRUCT ps; TCHAR szHello[MAX_LOADSTRING]; ¢º POINT po[5] = { 10, 150, 20, 230, 200, 240, 230, 210, 230, 160 }; ¢º HBRUSH br; ¢º RECT rect; Àü¿¡´Â WM_PAINT ¸Þ½ÃÁö ó¸® ÇÏ´Â °÷(case WM_PAINT : ) ¿¡ ³Ö¾ú´Âµ¥, switch ¹® ¾È¿¡¼´Â ¹è¿À» ÃʱâÈ ÇÒ ¼ö ¾ø±â ¶§¹®¿¡(¿ÏÀüÈ÷ ºÒ°¡´ÉÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù.) POINT Çü ¹è¿ po[5] ÀÇ ¼±¾ðºÎ Ãʱâȸ¦ À§ÇØ switch ¹® À§¿¡ ¹è¿À» ¼±¾ðÇÏ°í ÃʱâÈ ÇÕ´Ï´Ù. POINT Çü º¯¼ö´Â x, y °ªÀ» °¡Áö´Â ±¸Á¶Ã¼ º¯¼öÀÔ´Ï´Ù. Á¡ÀÇ ÁÂÇ¥¸¦ ±â¾ïÇÕ´Ï´Ù. ±× °ÍÀÌ 5°³ ¼±¾ðµÇ¾î ÀÖ¾î¼ ¹è¿ ÃʱâÈ´Â ÀüºÎ 10°³ÀÇ ¼ýÀÚ·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. Â÷·Ê´ë·Î x[0], y[0], x[1], y[1], ... ÀÇ °ªÀ» ÃʱâÈ ÇÕ´Ï´Ù. HBRUSH Çü º¯¼ö´Â ¸éÀ» ±×¸®´Â ÇÔ¼ö¿¡¼ ¸éÀÇ »ö»óÀ» °áÁ¤ÇÏ´Â ÀÚ·áÇüÀÔ´Ï´Ù. ¿ì¸®³ª¶ó ¸»·Î º×À̶ó°í ÇÏÁÒ? ºê·¯½¬¸¦ Çϳª ¸¸µé¸é ±× °ÍÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. RECT ÇüÀº Àü¿¡µµ ´Ù·ç¾ú½À´Ï´Ù. ¾îµð¼ ´Ù·ç¾úÁÒ? À©µµ¿ì(Ãâ·Â ¿µ¿ª)ÀÇ Å©±â¸¦ ±¸ÇÒ ¶§ ´Ù·ç¾ú½À´Ï´Ù. »ç°¢ÇüÀÇ ÁÂÇ¥¸¦ ±â¾ïÇÏ´Â º¯¼öÇüÀÔ´Ï´Ù. 4. case WM_PAINT : ·Î À̵¿Çؼ LoadString Çà°ú DrawText ÇàÀ» Áö¿ó´Ï´Ù. 5. ±× ÀÚ¸®¿¡ ¾Æ·¡ Äڵ带 ÀÔ·ÂÇØ º¾´Ï´Ù. br=CreateSolidBrush( RGB(0,255,0) ); SetRect( &rect, 20, 100, 220, 140 ); FillRect( hdc, &rect, br ); DeleteObject( br ); Ellipse( hdc, 10, 20, 100, 80 ); Polygon( hdc, po, 5 ); MyFloodFill( hdc, 100, 200, RGB(128,128,255) ); ÀÌ °ÍÀÌ °¢Á¾ µµÇüÀ» ±×·Áº¸´Â ÄÚµåÀÔ´Ï´Ù. br=CreateSolidBrush( RGB(0,255,0) ); ÀÌ ÇàÀº »õ·Î¿î º×(ºê·¯½¬)¸¦ ¸¸µì´Ï´Ù. º×ÀÇ »ö»óÀº ³ì»öÀÔ´Ï´Ù. ±× º×À» º¯¼ö br ÀÌ °¡¸®Å°°Ô ÇÕ´Ï´Ù. SetRect( &rect, 20, 100, 220, 140 ); »ç°¢ÇüÀ» ±×¸± ÁÂÇ¥¸¦ ÃʱâÈ ÇÕ´Ï´Ù. º¯¼ö rect ¿¡ 20, 100, 220, 140 °ªÀ» ±â¾ï½Ãŵ´Ï´Ù. °¢°¢ »ç°¢ÇüÀÇ ¿ÞÂÊ À§¿Í ¿À¸¥ÂÊ ¾Æ·¡ ÁÂÇ¥ÀÔ´Ï´Ù. FillRect( hdc, &rect, br ); ÁÂÇ¥ rect ´ë·Î »ç°¢ÇüÀ» Ä¥Çϴµ¥ »ö»óÀº º¯¼ö br ÀÌ ÁöÁ¤ÇÏ´Â »ö»ó´ë·Î Ä¥ÇÕ´Ï´Ù. ºê·¯½¬¸¦ ¾µ µ¥°¡ FillRect ÇÔ¼ö Á¤µµ ¹Û¿¡ ¾ø´Âµ¥ µ¥½ºÅ©Å¾ À©µµ¿ì API ¿Í ȣȯÀ» À§Çؼ ºê·¯½¬¸¦ ¾²´Â Çü½ÄÀ¸·Î ±×³É ¸¸µé¾î µ×³ª º¾´Ï´Ù. È¸é °¡¿îµ¥¿¡ ³ì»ö »ç°¢ÇüÀÌ ³ªÅ¸³µÀ» °Ì´Ï´Ù. DeleteObject( br ); ¸¸µé¾îÁø ºê·¯½¬¸¦ Á¦°ÅÇÕ´Ï´Ù. Ellipse( hdc, 10, 20, 100, 80 ); ¿øÀ» ±×¸®´Â ÇÔ¼öÀÔ´Ï´Ù. ÁöÁ¤µÈ ÁÂÇ¥ÀÇ »ç°¢Çü ¹üÀ§ ³»¿¡ µé¾î°¡´Â ¿øÀ» ±×¸³´Ï´Ù. ¿ø °è»ê¿¡ ¹®Á¦°¡ ÀÖ´ÂÁö ¿ø »çÀÌ·Î ±¸¸ÛÀÌ ¶Õ·Á ÀÖ½À´Ï´Ù. ¿ø ³»ºÎ¸¦ ÆäÀÎÆ® ÇØ ºÃ´Âµ¥ ¹Ù±ùÀ¸·Î ¹øÁ®¼ ±ô¦ ³î¶ú½À´Ï´Ù.(ÆäÀÎÆ®¸¦ À߸ø ®´Ü ¸»Àΰ¡... ¤Ð¤Ð) ¾Ë°í º¸´Ï ¿øÀ» ±×¸®´Â ¼± »çÀÌ·Î ±¸¸ÛÀÌ ¹ß»ýÇϴ±º¿ä. ¹®Á¦. ±¸¸ÛÀº ¸î °³Àϱî¿ä? Polygon( hdc, po, 5 ); ÁöÁ¤µÈ Á¡ ÁÂÇ¥(POINT)¸¦ °¡Áö°í ´ÝÈù µµÇüÀ» ±×¸³´Ï´Ù. ¸Ç ¸¶Áö¸· Á¡ ´ÙÀ½À¸·Î´Â ´Ù½Ã ½ÃÀÛÁ¡À¸·Î µ¹¾Æ¿É´Ï´Ù. ÀÌ °ÍÀÌ Polyline °úÀÇ Â÷ÀÌÀÔ´Ï´Ù. Polyline Àº ¿¸° µµÇüÀ», Polygon Àº ´ÝÈù µµÇüÀ» ±×¸³´Ï´Ù. PolygonÀ» Polyline À¸·Î ¹Ù²ã º¸¼¼¿ä. MyFloodFill( hdc, 100, 200, RGB(128,128,255) ); ÀÌ °ÍÀº WinCE¿¡ ÆäÀÎÆ® ÇÔ¼ö°¡ ¾ø¾î¼ Á¦°¡ ¸¸µç ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀÔ´Ï´Ù. ¸¸¾à À§ 2¹øÀÇ MyFloodFill ÇÔ¼ö¸¦ Ãß°¡ÇÏÁö ¾ÊÀ¸¼Ì´Ù¸é ÀÌ ÄÚµå´Â ÀÔ·ÂÇÏ½Ã¸é ¾ÈµË´Ï´Ù.(ÄÄÆÄÀÏ ¿¡·¯) Polygon À¸·Î ±×¸° ¿µ¿ªÀ» ¹àÀº ÆĶõ»öÀ¸·Î »öÄ¥ÇÕ´Ï´Ù. 6. ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸¼¼¿ä. À§ ±×¸²ÀÌ ³ªÅ¸³µ½À´Ï±î? óÀ½ ½ÃÀÛÇÒ ¶§´Â ¸¹Àº µµÇüÀ» ±×·Á º¸·Á°í Çß¾ú´Âµ¥ ½ÇÁ¦ ã¾Æº¸´Ï WinCE API´Â µ¥½ºÅ©Å¾ À©µµ¿ì¿¡ ÀÖ¾ú´ø ¸¹Àº ±×¸² ±×¸®´Â API ÇÔ¼öµéÀ» ¾ø¾Ö¹ö¸° °É ¾Ë°Ô µÇ¾ú½À´Ï´Ù. ¾Æ¹«·¡µµ ¸Þ¸ð¸®³ª ±âŸ ¿©·¯ °¡Áö ÇÑ°è ¶§¹®ÀÌ°ÚÁö¿ä. ±×·¡¼ ÇÊ¿äÇÑ °æ¿ì MyFloodFilló·³ »ç¿ëÀÚ°¡ Á÷Á¢ ¸¸µé¾î ½á¾ß ÇÕ´Ï´Ù. (¾Æ... ¿ëµÎ»ç¹Ì°¡ µÈ °ÀÇ... ) ±Ùµ¥ VB °ÀÇ´Â ¿Ö ¾È¿Ã¶ó ¿ÀÁÒ? ¹Ù»Ú½Å°¡ºÁ¿ä~ ^^ |
|
|