½Ç¼ö(¼Ò¼öÁ¡) ³ª´©¼À ¿¬»êÀ» Á¤¼ö ¿¬»êÀ¸·Î Çϱâ


1.¿ä¾à

¼Ò¼öÁ¡ÀÌ ÀÖ´Â ³ª´°¼À ¿¬»êÀ» Á¤¼ö·Î °è»êÇÏ¿© °è»ê ¼Óµµ°¡ ºü¸£°í Á¤È®ÇÑ ¼ýÀÚ¸¦ ¾òÀ» ¼ö ÀÖ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸°Ú½À´Ï´Ù.


2.º»¹®

Á¤¼ö·Î °è»êÀº ¼Ò¼öÁ¡ °è»êº¸´Ù ¿¬»ê ¼Óµµ°¡ ºü¸¨´Ï´Ù. ±×¸®°í Á¤È®ÇÑ ¼ýÀÚ°ªÀ» ¾ò±â À§Çؼ­´Â ³ª´©±â Àü¿¡ ¿ÞÂÊÀ¸·Î 16-bit shiftÇϰí, µ¿µîÇÑ 16-bitÀÇ 2Áø ¼ýÀÚ¸¦ ÁÖ¾î¾ß ÇÕ´Ï´Ù. À̰ÍÀº ³ª´©±â Àü¿¡ 100,000À¸·Î °ö¼ÀÀ» ÇÑ È¿°ú°¡ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¼Ò¼öÁ¡À» °è»êÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.


3.¿¹Á¦

1)
10 / 85 = x; 
10À» 100,000À¸·Î °öÇϸé, 1,000,000ÀÌ ³ª¿Â´Ù.
1,000,000 / 85 = 11764¸¦ ¸ÕÀú °è»êÇϰí,
°á°ú°ª 11764¸¦ 100,000À¸·Î ³ª´©¸é 0.11764°¡ ³ª¿Â´Ù.

2)

int ratio = ((( dege - px2) << 16) / (px1 - px2)); 

px1 = edge; 

py1 = py2 + (((py1 - py2) * ratio) >> 16)); 

3)

float ratio = (float)((edge - px2) / (px1 - px2)); 

px1 = edge; 

py = py2 + (int)(((float)(py1 - py2) * ratio)); 

[°á°ú]
2)¿¬»ê¼Óµµ°¡ 3)¿¬»ê¼Óµµº¸´Ù ¾à 2¹èÁ¤µµ ºü¸¥°á°ú°¡ ³ª¿É´Ï´Ù.


4.Âü°í

Real-Time Strategy Game Programming using Ms DirectX p.318



- 2001.08.13 Smile Seo -