9Àå¿¡¼ ¹è¿À» °øºÎÇÒ ¶§ ¹Ì¸® °è»êµÈ °ªÀ» ¹è¿¿¡ ÀúÀåÇÏ´Â ¿¹¸¦ º¸À̱â À§ÇØ Áö±¸°¡ žç ÁÖÀ§¸¦ °øÀüÇÏ´Â ¿¹Á¦¸¦ ¸¸µé¾î º» ÀûÀÌ ÀÖ´Ù. ÀÌ ¿¹Á¦¿¡¼ Áö±¸¿Í žçÀº °íÀ¯ÀÇ ¼Ó¼º°ú µ¿ÀÛÀ» °¡Áö´Â °´Ã¼·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¶È°°Àº µ¿ÀÛÀ» ÇÏ´Â ¿¹Á¦¸¦ ´ÙÀ½°ú °°ÀÌ °´Ã¼ ÁöÇâÀûÀ¸·Î ´Ù½Ã ÀÛ¼ºÇØ º¸ÀÚ.
|
¿¹ Á¦ : EarthObject |
#include <Turboc.h>
#include <math.h>
class Sun
{
private:
int x,y;
char ch;
public:
Sun(int ax,int ay,char ach) : x(ax),y(ay),ch(ach) {;}
void Show() {
gotoxy(x,y);putch(ch);
}
void Hide() {
gotoxy(x,y);putch(' ');
}
int GetX() const { return x; }
int GetY() const { return y; }
};
class Earth
{
private:
int r;
int x,y;
char ch;
const Sun *pSun;
public:
Earth(int ar,char ach,Sun *apSun) : r(ar),ch(ach),pSun(apSun) {;}
void Revolve(double angle) {
Hide();
x=int(cos(angle*3.1416/180)*r*2);
y=int(sin(angle*3.1416/180)*r);
Show();
}
void Show() {
gotoxy(pSun->GetX()+x,pSun->GetY()+y);putch(ch);
}
void Hide() {
gotoxy(pSun->GetX()+x,pSun->GetY()+y);putch(' ');
}
};
void main()
{
Sun S(40,12,'S');
Earth E(10,'E',&S);
clrscr();
S.Show();
for (double angle=0;!kbhit();angle+=10) {
E.Revolve(angle);
delay(100);
}
}
Sun Ŭ·¡½º°¡ žçÀ» Ç¥ÇöÇϴµ¥ ¼Ó¼ºÀ¸·Î ÁÂÇ¥¿Í ¹®ÀÚ¸¦ °¡Áø´Ù. ÅØ½ºÆ® ȯ°æ¿¡¼ žçÀ» Ç¥ÇöÇÏ·Á´Ù º¸´Ï ÇϳªÀÇ ´ÜÀÏ ¹®ÀÚ·Î Ãâ·ÂÇÒ ¼ö¹Û¿¡ ¾ø´Âµ¥ ±×·¡ÇÈ È¯°æÀ̶ó¸é ÀÌ±Û ÀÌ±Û ºÒŸ´Â ÅÂ¾ç ¸ð¾çÀ» ±×¸± ¼öµµ ÀÖ°í ÈæÁ¡À̳ª Æø¹ßÇÏ´Â Äڷγª µûÀ§¸¦ ±×·Á ³ÖÀ» ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ»óÀÇ ¼Ó¼ºµéÀº ¿ÜºÎ¿¡¼´Â ¸¶À½´ë·Î °Çµå¸± ¼ö ¾øµµ·Ï ¼û°ÜÁ® ÀÖ´Ù.
»ý¼ºÀÚ´Â Àμö·Î Àü´Þ¹ÞÀº Á¤º¸´ë·Î ÀÌ ¼Ó¼ºµéÀ» ÃʱâÈÇϴµ¥ ÃʱâÈ ¸®½ºÆ®¸¦ »ç¿ëÇÑ ´Ü¼øÇÑ ´ëÀÔ¹®µé»ÓÀÌ´Ù. Show, Hide ¸â¹ö ÇÔ¼ö´Â ½º½º·Î¸¦ º¸À̰ųª ¼û±â´Âµ¥ °´Ã¼°¡ °¡Áø ÁÂÇ¥·Î À̵¿ÇÑ ÈÄ Å¾çÀ» »ó¡ÇÏ´Â ¹®ÀÚ ¶Ç´Â °ø¹éÀ» Ãâ·ÂÇÑ´Ù. ÀÌ ¿Ü¿¡ žçÀÇ ¼û°ÜÁø ÁÂÇ¥ ¸â¹ö¸¦ Á¶»çÇÏ´Â GetX, GetY ¾×¼¼½º ÇÔ¼ö¸¦ Á¦°øÇϴµ¥ ÀÌ ÇÔ¼öµéÀº °ªÀ» Á¶»çÇϱ⸸ ÇÒ »Ó º¯°æÇÏÁö´Â ¾ÊÀ¸¹Ç·Î »ó¼ö ÇÔ¼ö·Î ¼±¾ðµÇ¾ú´Ù. žçÀº À§Ä¡°¡ ÇÑ ¹ø Á¤ÇØÁö¸é À̵¿ÇÒ ¼ö ¾øÀ¸¹Ç·Î °ªÀ» º¯°æÇÏ´Â ÇÔ¼ö´Â Á¦°øµÇÁö ¾ÊÀ¸¸ç ÁÂÇ¥´Â Àбâ Àü¿ëÀÌ´Ù. ¹°·Ð ÀÌ ÇÁ·Î±×·¥ÀÌ ÀºÇϰ踦 Ç¥ÇöÇÑ´Ù¸é ¹®Á¦°¡ ´Þ¶óÁö°ÚÁö¸¸ ¸»ÀÌ´Ù.
Show, Hide ¸â¹ö ÇÔ¼öµµ ±¸¹®»ó °´Ã¼ÀÇ »óŸ¦ º¯°æÇÏÁö´Â ¾ÊÀ¸¹Ç·Î »ó¼ö ÇÔ¼ö·Î ¸¸µé ¼ö ÀÖÁö¸¸ Àǹ̻óÀ¸·Î´Â º¸À̱⠻óŸ¦ º¯°æÇϹǷΠ»ó¼ö ÇÔ¼ö·Î º¸Áö ¾Ê´Â °ÍÀÌ Å¸´çÇÏ´Ù. ¸¸¾à ÇöÀç žçÀÇ º¸±â »óŸ¦ ±â¾ïÇÏ´Â bVisible µûÀ§ÀÇ ¸â¹ö º¯¼ö°¡ »õ·Î Ãß°¡µÈ´Ù¸é Show, Hide°¡ ÀÌ º¯¼öÀÇ »óŸ¦ º¯°æÇϹǷΠÀ̶§´Â »ó¼ö ÇÔ¼ö°¡ µÉ ¼ö ¾ø´Ù.
Earth Ŭ·¡½º´Â Áö±¸¸¦ Ç¥ÇöÇϴµ¥ ÁÂÇ¥, ¹®ÀÚ ¿Ü¿¡µµ °øÀü ±ËµµÀÇ ¹ÝÁö¸§, ±×¸®°í ÀÚ½ÅÀÌ °øÀüÇØ¾ßÇÒ Á᫐ ÁÂÇ¥¸¦ ¾ò±â À§ÇØ ÅÂ¾ç °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ¸â¹ö º¯¼ö·Î °¡Áø´Ù. Áö±¸´Â žçÀ¸·ÎºÎÅÍ Á᫐ ÁÂÇ¥¸¸À» ¾òÀ¸¸ç žçÀ» Á÷Á¢ Á¶ÀÛÇÏÁö´Â ¾ÊÀ¸¹Ç·Î pSunÀº »ó¼ö Áö½Ã Æ÷ÀÎÅÍ·Î ¼±¾ðµÇ¾ú´Ù. Áö±¸ÀÇ ÀÔÀå¿¡¼ º¼ ¶§ žçÀº ÁÖ¾îÁø ȯ°æÀÏ »ÓÀÌÁö Á¶ÀÛ ´ë»óÀº ¾Æ´Ï´Ù. Áö±¸°¡ ž ¶§ºÎÅÍ ´©±¸ ÁÖÀ§¸¦ µ¹ Áö ¼÷¸íÀûÀ¸·Î °áÁ¤µÇ´Â °ÍÀÌÁö Àß µ¹´Ù°¡ žçÀÌ ¸¶À½¿¡ ¾Èµç´Ù°í Á÷³à¼ºÀ̳ª ºÏ±Ø¼ºÀ¸·Î À̻縦 °¥ ¼ö´Â ¾ø´Ù. ¾Æ¸¶ À̻簡´Â µµÁß¿¡ ´Ù ¾ó¾îÁ×¾î ¹ö¸± °ÍÀÌ´Ù. »ó¼ö ¸â¹öÀÎ pSunÀº ¹Ýµå½Ã ÃʱâÈ ¸®½ºÆ®¿¡¼ ÃʱâÈÇØ¾ß ÇÏ¸ç ½ÇÇàÁß¿¡ º¯°æÇÒ ¼ö ¾ø´Ù.
¸â¹ö ÇÔ¼ö·Î´Â »ý¼ºÀÚ, Show, Hide ±×¸®°í ÁÖ¾îÁø °¢µµÀÇ °øÀü À§Ä¡·Î À̵¿ÇÏ´Â Revolve ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Ù. Revolve ÇÔ¼ö°¡ °¢µµ¿Í °øÀü ¹ÝÁö¸§À» ¼öÇнĿ¡ ´ëÀÔÇÏ¿© ÇöÀç °øÀü À§Ä¡ x, y¸¦ ±¸ÇÏ´Â ¹æ¹ýÀ» ±¸ÇöÇϰí ÀÖÀ¸¹Ç·Î °´Ã¼¸¦ ¾²´Â ÂÊ¿¡¼´Â ÀÌ °ø½Ä¿¡ ´ëÇØ¼ ¸ô¶óµµ »ó°ü¾ø´Ù. Show, Hide ¸â¹ö ÇÔ¼ö´Â žçÀÇ ÁÂÇ¥¿¡ ÇöÀç °øÀü À§Ä¡¸¦ ´õÇØ Áö±¸ ÁÂÇ¥¸¦ ±¸Çϴµ¥ À̶§ pSun->GetX(Y) ÇÔ¼ö¸¦ ÀÚÀ¯·Ó°Ô È£ÃâÇÒ ¼ö ÀÖ´Â ÀÌÀ¯´Â ÀÌ ÇÔ¼öµéÀÌ »ó¼ö ÇÔ¼öÀ̱⠶§¹®ÀÌ´Ù. ¸¸¾à GetX(Y) ÇÔ¼ö°¡ »ó¼ö¼ºÀ» °¡ÁöÁö ¾Ê´Â´Ù¸é pSun »ó¼ö Áö½Ã Æ÷ÀÎÅͷκÎÅÍ ÀÌ ÇÔ¼öµéÀ» È£ÃâÇÒ ¼ö ¾ø´Ù.
ÀÌ·¸°Ô °´Ã¼¸¦ ¸¸µé¾î ³õÀ¸¸é Ŭ¶óÀÌ¾ðÆ® Äڵ忡¼ žç°ú Áö±¸¸¦ Ç¥ÇöÇÏ´Â °ÍÀº ¾ÆÁÖ ½±´Ù. Àû´çÇÑ ÁÂÇ¥¿¡ Àû´çÇÑ ¹®ÀڷΠžç S¿Í Áö±¸ E¸¦ ¸¸µé°í ·çÇÁ¸¦ µ¹¸®¸é¼ Áö±¸¸¦ °è¼Ó °øÀü½Ã۱⸸ ÇÏ¸é µÈ´Ù. ¸¸¾à Áö±¸ÀÇ ÀÚÀüµµ Ç¥ÇöÇÏ°í ½Í´Ù¸é Rotate ¸â¹ö ÇÔ¼ö¸¦ ¸¸µé°í ÀÚÀü°ú °øÀüÀ» µ¿½Ã¿¡ ÇÏ´Â Á» ´õ »ç½ÇÀûÀÎ Áö±¸ Ŭ·¡½º¸¦ ¸¸µé ¼öµµ ÀÖÁö¸¸ ¾ÈŸ±õ°Ôµµ ÄÜ¼Ö È¯°æÀÇ Ç¥Çö·ÂÀÌ ¼¶¼¼ÇÏÁö ¸øÇØ ±×·¸°Ô±îÁö´Â ÇÏÁö ¸øÇß´Ù.
ÀÌ ¿¹Á¦´Â ±¸Á¶ÀûÀ¸·Î ÀÛ¼ºµÈ ¿øº» ¿¹Á¦ Revolution1º¸´Ù ±æÀ̰¡ ÈξÀ ´õ ±æ¾îÁ³Áö¸¸ main ÇÔ¼öÀÇ ÄÚµå´Â ÈξÀ ´õ ª´Ù. ÇÑ ¹ø ¸¸µé¾î ³õÀº °´Ã¼°¡ Àç»ç¿ëµÉ ¼ö ÀÖ´Ù´Â Á¡À» °¨¾ÈÇÏ¸é °³¹ß ¼Óµµ´Â ÀÌ ¿¹Á¦°¡ ´õ ºü¸£´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé Sun, Earth¸¦ ¹Ýµå½Ã Á÷Á¢ ¸¸µé¾î¾ß ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÌ¹Ì ¸¸µé¾îÁø °ÍÀ» °¡Á®¿Í Àç»ç¿ëÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù.
MoonObject
žç°ú Áö±¸¸¦ °´Ã¼·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù¸é ¶È°°Àº ¹æ¹ýÀ¸·Î Áö±¸ ÁÖÀ§¸¦ °øÀüÇÏ´Â ´Þµµ ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÞÀ» °´Ã¼·Î ¸¸µé¾î Áö±¸ ÁÖÀ§¸¦ °øÀüÇϵµ·Ï ÇØ º¸¾Æ¶ó.