¸®´ª½º ±âŸ ÀÚ·á |
---|
Á¦¸ñ | X-Windows Programming #6 1998/07/04 (16:31) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 46 |
Á¶È¸ | 359 |
º»¹® |
¡º¸®´ª½º Çдç-¸®´ª½º °Á / ¿¬Àç (go LINUX)¡» 236¹ø Á¦ ¸ñ:[°Á 06] X ÇÁ·Î±×·¡¹Ö ±âÃÊ : Xlib ¿Ã¸°ÀÌ:geoman (À̸¸¿ë ) 96/04/16 11:13 ÀÐÀ½:2165 °ü·ÃÀÚ·á ¾øÀ½ ----------------------------------------------------------------------------- /* X Window ±×·¡ÇÈ */ ¾ÆÁ÷ â¿¡ ´ëÇÏ¿© ÇÒ À̾߱âµéÀº ¸¹ÀÌ ³²¾Æ ÀÖÁö¸¸, ³Ê¹« ½ä··ÇÑ Ã¢¸¸ °¡Áö°í À̸® Àú¸® Àå³Ä¡´Â °ÍÀº ±×¸¸µÎ°í ´çºÐ°£Àº GRAPHICS ¿¡ ´ëÇÏ¿© °øºÎÇغ¸µµ·Ï ÇÏ°Ú½À´Ï ´Ù. 8) X À©µµ¿ì ±×·¡ÇÈÀÇ ±âº» °³³ä 1. ¾îµð¿¡(Where) ±×¸± °ÍÀΰ¡? ¹¹, ³Ê¹« ´ç¿¬ÇÑ °Í ¾Æ´Ï°Ú¾î¿ä? â(Window) ¾È¿¡´Ù ±×¸²À» ±×¸®°ÚÁö¿ä. ÇÏÁö¸¸, ¿ÀÁ÷ ±×°Í¸¸Àº ¾Æ´Ï¶ø´Ï´Ù. â ¸»°íµµ ±×¸± ¼ö ÀÖ´Â °÷ÀÌ Àִµ¥, ±×°ÍÀ» Pixmap À̶ó°í ÇÕ´Ï´Ù. Áß¿äÇÑ ÀÚ·áÇü(Variable Type) Áß¿¡ Window¿Í Pixmap ÀÌ µÎ °¡Áö°¡ Àִµ¥, ÀÌ µÎ °³¸¦ ÇÕÃļ ÀÚ·áÇü DrawableÀ̶ó°í ÇÕ´Ï´Ù. Drawable? ÀÚ, ±×¸²À» ±×¸®´Â °ÍÀÌ °¡´ÉÇÏ´Ù´Â ¶æÀÌÁÒ? ¾îµð¼ º» °Íµµ °°ÁÒ? ¹Ù·Î Àü¹ø °ÀÇ XGetGeo- metry ÇÔ¼ö¿¡¼ Àá±ñ ³ª¿Ô´ø ³à¼®ÀÔ´Ï´Ù. ´çºÐ°£ °è¼Ó â¿¡´Ù¸¸ ±×¸± °ÍÀÌ¿À´Ï, Pixmap¿¡ ´ëÇÑ ¼³¸íÀ» ´ÙÀ½À¸·Î ¹Ì·ì´Ï´Ù. ÀÌ·¸°Ô ¹Ì·ïµµ µÇ³Ä±¸¿ä? °ÆÁ¤ÇÏÁö ¸¶½Ê ½Ã¿ä. Drawable ÀÚ·áÇüÀ̶ó°í µÇ¾î ÀÖ´Â °ÍÀº Window³ª Pixmap µÎ °¡Áö¿¡ ¶È°°ÀÌ Àû¿ëµÇ¹Ç·Î »õ·Ó°Ô ¹è¿ì½Ç ÇÊ¿ä°¡ ¾ø°í ÀÌÇØÇϽñ⵵ ½¬¿ï °Ì´Ï´Ù. 2. ¾î¶² º×À» °¡Áö°í? ( Graphics Context ) Å« º×, ÀÛÀº º× ... »¡°£»ö, ³ë¶õ»ö, ÁÖȲ»ö ... ¹«¾ùÀΰ¡¸¦ ±×¸± ¶§ ÀÚ½ÅÀÇ ±¸¹Ì¿¡ ¸Â°Ô ´Ù¾çÇÑ µµ±¸¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ¾î¾ß ÇÏ°ÚÁÒ? X À©µµ¿ì ½Ã½ºÅÛÀº Graphics Context ù±ÛÀÚ¸¸ µû¼ GC¶ó°í ÇÏ´Â ¾ÆÁÖ Æ¯º°ÇÑ ÀÚ¿ø(Resource)À» °¡Áö°í ÀÖ½À´Ï´Ù. ¿ä GC¶ó°í ÇÏ´Â °Í¿¡ °ú¿¬ ¾î¶»°Ô(How) ±×¸± °ÍÀΰ¡? ¶ó´Â ¹®Á¦¿¡ ´ëÇÑ Á¤º¸¸¦ Àü ÀûÀ¸·Î(!) °¡Áö°í ÀÖ½À´Ï´Ù. Ç×»ó ÀÚ¿øÀº ¼¹ö°¡ µ¶ÀçÀûÀ¸·Î(!) °ü¸®¸¦ ÇÏ´Â ¸ð½À À» ¿©±â¼µµ ¿³º¼ ¼ö ÀÖ±º¿ä. :) 3. ¾î¶² °ÍÀ» ±×¸± ¼ö Àִ°¡? ( ±×·¡ÇÈ ³»¿ë ) ±×·¡ÇÈ¿¡ ±âº»ÀÎ Á¡(Point), ¼±(Line)À» ±×¸± ¼ö ÀÖ½À´Ï´Ù. ÇϳªÀÇ Á¡, ÇϳªÀÇ ¼± À» ±×¸®¶ó°í ¼¹ö¿¡°Ô ¿äûÇÏ´Â ÇÔ¼öµéÀÌ ´ç¿¬È÷ ±¸ºñµÇ¾î ÀÖ°í, ¿©±â¿¡ °³¹ßÀÚ Æí¸®¸¦ À§Çؼ ¿©·¯ °³ÀÇ Á¡, ¿©·¯ °³ÀÇ ¼±À» ±×¸®´Â ÇÔ¼ö, »ç°¢Çü, ¿øÈ£ µîµîÀ» ±×¸®µµ·Ï ¿äûÇÏ´Â ÇÔ¼ö°¡ ¶ÇÇÑ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. ¸¶Áö¸·À¸·Î ÅؽºÆ® ¹®ÀÚ¸¦ ±× ·Á³¾ ¼ö ÀÖ´Â ÇÔ¼öµéÀÌ ÀÖ¾î¼ ¿øÇÏ´Â ÆùÆ®¸¦ °¡Áö°í ¹®ÀÚ¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. X À©µµ¿ì´Â GUI üÁ¦À̹ǷΠ±ÛÀÚ ¶ÇÇÑ ¾²´Â °Ô ¾Æ´Ï¶ó ´Ù¸¥ µµÇü°ú ¸¶Âù°¡Áö·Î ±× ¸®´Â °ÍÀÌÁÒ. :) Âü°í·Î ¿©·¯ºÐÀÌ ½½·¢À» ¼³Ä¡ÇÒ ¶§ PEX ¶óÀ̺귯¸®¸¦ ¼³Ä¡Çϼ̴٠¸é 3Â÷¿ø ±×·¡ÇÈÀ» ¾ÆÁÖ ½±°Ô ±×¸± ¼ö ÀÖ½À´Ï´Ù. ³ªÁß¿¡ ±âȸ°¡ µÇ¸é ¾à°£ ¼³¸íÀ» µå¸± ¿¹Á¤ÀÔ´Ï´Ù¸¸... 8-1) ±×·¡ÇÈÀÇ ±âº» ÀýÂ÷ ¾î¶² ÇÁ·Î±×·¡¹ÖÀÌµç ¸¶Âù°¡ÁöÀÌ°ÚÁö¸¸, X À©µµ¿ì ÇÁ·Î±×·¡¹ÖÀº ¾î¶² ÀÏÀ» ¼öÇàÇÏ µçÁö Á¤ÇØÁ® ÀÖ´Â ¸î ´Ü°èÀÇ ÀýÂ÷¸¦ µû¶ó¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÀýÂ÷¸¦ ¸Ó¸® ¼Ó¿¡ Ç×»ó ±â¾ïÇÏ½Ç ¼ö ÀÖ´Â ºÐµéÀ̾߸»·Î X À©µµ¿ì ÇÁ·Î±×·¡¹Ö µµ»çµéÀÌ µÇ½Ã´Â °Ì´Ï´Ù. < ±âº» ÀýÂ÷ > 1. ¿ì¼± ±×¸± ´ë»óÀÌ ¹Ì¸® ÁغñµÇ¾î ÀÖ¾î¾ß ÇÏ°ÚÁÒ? ¿ì¸®´Â XCreateSimpleWindow ÇÔ¼ö¸¦ ÅëÇØ Ã¢À» ¸¸µé¾î ³õÀ¸¸é µË´Ï´Ù. 2. Áß¿ä!!! ±× ´ÙÀ½¿¡´Â GC¶ó°í Çϴ Ưº°ÇÑ ÀÚ¿øÀ» ¼¹ö¿¡°Ô ¸¸µé¾î ´Þ¶ó°í ¿äû ÇÕ´Ï´Ù. ±×¸®°í ¿ì¸®´Â GCÀÇ ID¸¸ ¼¹ö¿¡°Ô¼ ¹ÝȯÀ» ¹Þ½À´Ï´Ù. ¿ì¸®°¡ GC ÀÚü ³»¿ëÀ» ´Ù °¡Á®¿Ã ¼ö´Â ¾ø½À´Ï´Ù. ´ÜÁö! ±× ID¸¸ °¡Á®¿É´Ï´Ù. 3. ±×¸®°í ½ÍÀº ½ºÅ¸ÀÏÀ» Á¤ÇÏ°í GCÀÇ Æ¯Á¤°ªÀ» ¹Ù²Ù¾î ´Þ¶ó°í ¿äûÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ¼±ÀÇ ±½±â, Á¡¼±ÀÌ³Ä ½Ç¼±À̳Ä, »ö»óÀº ¾î¶² °ÍÀ¸·Î ÇÏ´À³Ä µîµî 4. ±×¸®°í ½ÍÀº µµÇüÀ» ¼±ÅÃÇؼ ¾Ë¸Â´Â ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Á¡ÀÌµç ¼±ÀÌµç »ç°¢ÇüÀÌ µç°¡¿¡ ¾î¶² â¿¡ ¾î¶² GC¸¦ ÀÌ¿ëÇؼ ±×¸®¶ó°í ¼¹ö¿¡°Ô ¿äûÇÕ´Ï´Ù. Áö±ÝºÎÅÍ´Â ÀÌ ¼ø¼ ±×´ë·Î ¼³¸íÀ» Çسª°¥ °ÍÀÔ´Ï´Ù. À§ ±âº»ÀýÂ÷¸¦ ²À ±â¾ïÇϼ¼¿ä. 8-2) ¿ì¼± GC ¸¦ ¸¸µéÀÚ. ±âº» ÀýÂ÷ 1.¿¡ ´ëÇؼ´Â ¼³¸íµå¸®Áö ¾Ê½À´Ï´Ù. â ¸¸µå´Â °Å Áö±Ý±îÁö ÇØ¿ÔÀݾƿä? ÇÔ¼öÀÇ ¿øÇü : <X11/Xlib.h> GC XCreateGC ( Display *display, Drawable drw, unsigned long bitmask, XGCValues *values ); bitmask, XGCValues Çü º¯¼ö values¿¡ ´ëÇÑ ¼³¸í¸¸ÀÌ ÇÊ¿äÇÏ°Ú±º¿ä. < XGCValuse Çü º¯¼ö ±¸Á¶Ã¼¿¡ ´ëÇÑ ¼³¸í > <X11/Xlib.h>¿¡ Á¤ÀǵǾî ÀÖ´Â XGCValues±¸Á¶Ã¼¿£ ´ÙÀ½°ú °°Àº ¸â¹öµéÀÌ ÀÖ½À´Ï´Ù. ------------------------------------------------------------------------------ # ¸â ¹ö ¸í ºñÆ® ¸Å½ºÆ® ±âº»°ª ------------------------------------------------------------------------------ 1 int function GCFunction GXCopy 2 unsigned long plane_mask GCPlaneMask ¸ðµÎ 1 3 unsigned long foreground GCForeground 0 4 unsigned long background GCBackground 1 5 int line_width GCLineWidth 0 6 int line_style GCLineStyle LineSolid 7 int cap_style GCCapStyle CapButt 8 int join_style GCJoinStyle JoinMiter 9 int fill_style GCFillStyle FillSolid 10 int fill_rule GCFillRule EvenOddRule 11 int arc_mode GCArcMode ArcPieSlice 12 Pixmap tile GCTile ? 13 Pixmap stipple GCStipple ? 14 int ts_x_origin GCTileStipXOrigin 0 15 int ts_y_origin GCTileStipYOrigin 0 16 Font font GCFont ? 17 int subwindow_mode GCSubwindowMode ClipByChildren 18 Bool graphics_exposures GCGraphicsExposures True 19 int clip_x_origin GCClipXOrigin 0 20 int clip_y_origin GCClipYOrigin 0 21 Pixmap clip_mask GCClipMask None 22 int dash_offset GCDashOffset 0 23 char dashes GCDashList 4 ºñÆ® ¸Å½ºÅ© ¸ÅÅ©·Î¿Í ±âº»°ª¿¡¼ÀÇ ¸ÅÅ©·Î´Â <X11/Xlib.h> ÈÀÏ¿¡¼ ÀÚµ¿À¸·Î Æ÷ÇÔ(#include)ÇÏ´Â <X11/X.h> ÈÀÏÀÇ GRAPHICS DEFINITION ºÎºÐ¿¡ Á¤ÀǵǾî ÀÖÀ¸ ´Ï ±× ºÎºÐÀ» ã¾Æº¸½Ã±â ¹Ù¶ø´Ï´Ù. ? Ç¥ÇÑ ºÎºÐÀº ¾ÆÁ÷Àº ¾Ë ÇÊ¿ä°¡ ¾ø°Å³ª 16¹ø FontÀÇ °æ¿ì¿¡´Â ½Ã½ºÅÛ¸¶´Ù ´Ù¸¥ ´Ù¸¥ °ªÀ̹ǷΠÁ¤ÇØÁöÁö ¾ÊÀº °ªÀ̶ó´Â ¶æÀÔ´Ï´Ù. À§ µµÇ¥¸¦ ÁÖÀDZí°Ô »ìÆ캸½Ê½Ã¿ä. ¸â¹ö¸í°ú ºñÆ® ¸Å½ºÅ©¸í »çÀÌ¿¡´Â ÇÑ ´«¿¡µµ ô ¾Ë¾Æº¼ ¼ö ÀÖ´Â ¸í¸í±ÔÄ¢ÀÌ ÀÖ½À´Ï´Ù. ºñÆ® ¸Å½º¸íÀº Ç×»ó GC·Î ½ÃÀÛÇÏ°í ¸â¹ö¸íÀÌ ¼Ò¹®ÀÚÀÎ °Í°ú ´Þ¸® Ç×»ó ´ë¹®ÀÚ, ±×¸®°í ´Ü¾î¸¶´Ù ´ë¹®ÀÚ¸¦ ¾¹´Ï´Ù. ¸â¹ö¸í¿¡ ÀÖ ´Â ´ë½¬(-) ¹®ÀÚ´Â ¾ø¾Û´Ï´Ù. ¸â¹ö¸íÀ» ¼Ò¹®Àڷθ¸ ½è±â ¶§¹®¿¡ ´Ü¾î±¸º°À» À§ÇØ ´ë½¬°¡ µé¾î°£ °Í¿¡ ºÒ°úÇϴϱî¿ä. ÀÌ·¯ÇÑ ¸í¸í ¹æ½ÄÀº X Àü¹Ý¿¡ »ç¿ëµÇ°í ÀÖÀ¸´Ï ¼ÒȦÈ÷ ³Ñ±âÁö ¸¶½Ã±â ¹Ù¶ø´Ï´Ù. ÇÁ·Î±×·¥ ³»¿¡¼ º¸Åë ´ÙÀ½°ú °°Àº °úÁ¤À» ÅëÇØ GC¸¦ ¼¹ö Ãø¿¡ »ý¼º,µî·Ï½ÃÅ°°í ID¸¦ ÀÔ¼öÇÕ´Ï´Ù. Display *display; /* µð½ºÇ÷¹ÀÌ ¼¹öÀÇ ID */ Window window; /* »ý¼ºµÉ âÀÇ ID */ GC gc; /* ¿ì¸®°¡ »ç¿ëÇÒ º× */ XGCValues gvalue; /* º×ÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¶§ ±× ¼Ó¼ºÀ» ÀúÀåÇØµÑ º¯¼ö */ ... /* ¿ì¸®°¡ ¿øÇÏ´Â ±×·¡ÇÈ ¼Ó¼º¸¸À» ¼ÂÆÃÇÑ´Ù */ gvalue.line_width = 20; gvalue.line_style = LineOnOffDash; gvalue.cap_style = CapRound; gvalue.join_style = JoinRound; /* ÁÖÀÇ */ gc = XCreateGC ( display, window, GCLineWidth | GCLineStyle | GCCapStyle, &gvalue ); /* ¿©±â¼ ´«¿©°Ü º¼ °ÍÀº GCLineWidth | GCLineStyle | GCCapStyle ºÎºÐÀÌ´Ù. ¿ì¸®°¡ XGCValues Çü º¯¼ö gvalue¿¡ ¼ÂÆÃÇÑ ¼Ó¼ºÀÇ ¸Å½ºÅ©¸¦ OR Çü½ÄÀ¸·Î ÁöÁ¤ÇØÁÖ¾î¾ß ÇÑ´Ù. */ º×À» óÀ½ ¸¸µé ¶§ºÎÅÍ ¹Ì¸® ¸î °¡Áö ¼Ó¼ºÀ» ¸¸µé¾î ³õ°í ½ÃÀÛÇÏ´Â ÀüÇüÀûÀÎ ¹æ½Ä ÀÔ´Ï´Ù. ºñÆ® ¸Å½ºÅ© ¾´ ¹æ½ÄÀ» Á¤¸»·Î À¯½ÉÈ÷ »ìÆ캸½Ê½Ã¿ä. ±×·¯¸é ÇÑ °¡Áö »ç ½ÇÀ» ´«Ä¡Ã¤½Ç ¼ö ÀÖ½À´Ï´Ù. /* ÁÖÀÇ */¶ó°í ÇÑ ÁÙ¿¡¼ µÎ ÁÙÀÌ À̾îÁú ¶§ ¾î¶² ¸ð¾çÀ¸·Î À̾îÁúÁö¿¡ ´ëÇÏ¿© Á¤ÇØÁÖ¾úÁö¸¸ GC¸¦ ¸¸µé ¶§ ºñÆ® ¸Å½ºÅ©¿¡¼ GCJoin- Style À» ³Ö¾îÁÖÁö ¾Ê¾Ò±â ¶§¹®¿¡ ¼Ó¼ºÀÌ µÇÁö ¸øÇÕ´Ï´Ù. ¾î¶»°Ô º¸¸é ´ç¿¬ÇÏÁÒ? ÄÄÇ»ÅÍ°¡ ¹«½¼ ÀçÁÖ·Î ¿ì¸®°¡ ¹«½¼ °ªÀ» ¿øÇÏ´ÂÁö ¾Ë°Ú½À´Ï´Ù. ÀÌ·¯Àú·¯ÇÑ °ÍÀ» ÁöÁ¤ÇØ µÎ¾úÀ¸´Ï ±×°ÍÀ» ¼ÂÆÃÇ϶ó. ÀÌ·± ½ÄÀ¸·Î ÀÚ¼¼È÷ ¾Ë·ÁÁÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. 8-3) GCÀÇ ½ºÅ¸ÀÏ ¼³Á¤Çϱ⠸Źø GC¸¦ ¸¸µé ¶§¸¸ ¼Ó¼ºÀ» Á¤ÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÀÌ¹Ì »¡° ¹°°¨À» Àû½Å º×À̶ó ÇÏ´õ¶óµµ ¹°¿¡ ¾Ä¾î³»°í ÆĶû ¹°°¨À» Àû½Ç ¼öµµ ÀÖ´Â °Í ¾Æ´Ï°Ú½À´Ï±î? ÇÔ¼öÀÇ ¿øÇü : <X11/Xlib.h> XChangeGC ( Display *display, GC gc, unsigned long mask, XGCValues *gvalues ); »ç¿ë¹ýÀº À§¿¡¼¿Í °°½À´Ï´Ù. º×ÀÇ ¼Ó¼ºÀ» ¹Ù²Ù°í ½ÍÀ» ¶§´Â XGCValues Çü º¯¼öÀÇ ¸â¹ö¿¡ ÀûÀýÇÑ °ªÀ» ¼ÂÆÃÇÑ ÈÄ, ÀÌ ÇÔ¼ö¸¦ ºÎ¸£¸é µË´Ï´Ù. ºñÆ®¸Å½ºÅ©¸¦ Àß ¾²¼Å ¾ß°ÚÁÒ? 8-4) ÀÌÁ¦ ¹°°¨¿¡ Àû½Å º×À¸·Î ±×·Áº¾½Ã´Ù. (1) Á¡ ±×¸®´Â ÇÔ¼ö ÇÔ¼ö ¿øÇü : <X11/Xlib.h> XDrawPoint( Display *display, Drawable d, GC gc, int x, int y ); XDrawPoints ( Display *display, Drawable d, GC gc, XPoint *points, int npoints, int mode ); typedef struct { short x, y; } XPoint; /* Âü°í : XSegment, XRectangle, XArc */ XDrawPoints ÇÔ¼ö´Â µÚ¿¡ º¹¼öÇüÀÓÀ» ÀǹÌÇÏ´Â s°¡ ºÙÀº °Í¿¡ À¯ÀÇÇսôÙ. ¿©·¯ °³ ÀÇ Á¡À» XPoint Çü ±¸Á¶Ã¼ ¹è¿¿¡ ³Ö¾î¼ ÇÑ ¹øÀÇ ÇÔ¼ö ºÎ¸£±â·Î ±×¸®°íÀÚ ÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù. ¸ðµç ½ºÅ¸ÀÏ¿¡ ´ëÇÑ ¼ÂÆÃÀº Ç×»ó GC Çü º¯¼ö°¡ °¡¸®Å°´Â ¼¹öÀÇ ¸Þ¸ð¸® ¿¡ ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇսôÙ. npoints º¯¼ö´Â Á¡ ¹è¿ÀÇ °¹¼ö¸¦ ÁöÁ¤ÇØÁÝ´Ï´Ù. mode ¿¡´Â ´ÙÀ½ µÎ °¡Áö°¡ Àִµ¥ CoordModeOriginÀº ÁÖ¾îÁø ¸ðµç ÁÂÇ¥°¡ Drawable ÀÇ ¿øÁ¡¿¡ ´ëÇÑ ÁÂÇ¥·Î ÁÖ¾îÁ³À½À» ÀǹÌÇϸç, CoorDModePrevious´Â ÃÖÃÊÀÇ Á¡¸¸ Drawable ¿øÁ¡¿¡ ´ëÇÑ ÁÂÇ¥ÀÌ¸ç ³ª¸ÓÁö´Â ¹Ù·Î Á÷ÀüÀÇ Á¡¿¡ ´ëÇÑ »ó´ë ÁÂÇ¥·Î Ç¥½Ã µÇ¾î ÀÖÀ½À» ³ªÅ¸³»ÁÝ´Ï´Ù. (2) Á÷¼± ±×¸®´Â ÇÔ¼ö ÇÔ¼ö ¿øÇü : <X11/Xlib.h> XDrawLine( Display *display, Drawable d, GC gc, int x1, int y1, int x2, int y2 ); XDrawLines( Display *display, Drawable d, GC gc, XPoints *points, int npoints, int mode ); XDrawSegments( Display *display, Drawable d, GC gc, XSegment *segments, int nsegments ); ù¹ø° ÇÔ¼ö´Â Drawable ³»¿¡¼ ( x1, y1 )¿¡¼ ( x2, y2 ) ÁÂÇ¥±îÁö ¼±À» ±ß´Â ¾ÆÁÖ ÀϹÝÀûÀÎ ÇÔ¼öÀÔ´Ï´Ù. µÎ¹ø° ÇÔ¼ö´Â ¿¬ÇÊ ¶¼Áö ¾Ê°í ±×¸®±â¸¦ ¸»ÇÕ´Ï´Ù. XPoint ±¸Á¶Ã¼ ¹è¿ÀÇ Á¡µéÀÌ °è¼Ó À̾îÁö´Â ÇüÅ·Π±×·ÁÁø´Ù. ÁÂÇ¥¿¡ ´ëÇÑ Ç¥±â´Â mode °ªÀ¸·Î ÇÕ´Ï´Ù. Á¡ ±×¸®´Â ÇÔ¼ö XDrawPoints¿¡¼¿Í °°½À´Ï´Ù. ¼¼¹ø° XDrawSegments´Â µÎ¹ø° ÇÔ¼ö¿Í ´Þ¸® ¿¬¼ÓµÈ ¹è¿ÀÇ Á¡µéÀ» ÇÑ ½Ö ¾¿ ¹¾î ¼ ¼±À» ¿©·¯ °³ ±×¸°´Ù. (x1,y1)¿¡¼ (x2,y2)¿¡ ±ß°í, ´Ù½Ã (x3,y3)¿¡¼ (x4,y4) ¿¡ ±ß´Â ¹æ½ÄÀÔ´Ï´Ù. ¼± ½ºÅ¸ÀÏÀÌ ¸¹À¸¹Ç·Î Xlib¿¡ ´ëÇÑ ·¹ÆÛ·±½º PS ÈÀÏ µîÀ» ±¸ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. Ã¥À» »çÁö ¾Ê¾Æµµ ¿Ïº®ÇÑ ¼³¸í¼°¡ µÉ ¸¸Å Àß ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. Âü°í ÇÔ¼ö : XSetLineAttributes () XSetDash () (3) Á÷»ç°¢Çü ±×¸®´Â ÇÔ¼ö ÇÔ¼ö ¿øÇü : <X11/Xlib.h> XDrawRectangle ( Display *display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height ); XDrawRectangles( Display *display, Drawable d, GC gc, XRectangle rectangels[], int nrectangles ); (4) ±×·¡ÇÈ¿¡ °ü½ÉÀÌ ¸¹À¸½Å ºÐµéÀº ½º½º·Î ³ª¸ÓÁö ÇÔ¼öµéÀ» Á¶»çÇϽñ⠹ٶø´Ï´Ù. ÀÌ°Í¿¡ ¸¸Á·ÇϽÃÁö ¸øÇÏ´Â ºÐµéÀº 3D ±×·¡ÇÈ ¶óÀ̺귯¸®ÀÎ PEXlib ¿¡ ´ëÇÑ °øºÎ¸¦ ÇÏ½Ã¸é µË´Ï´Ù. ÀÌ°Í¿¡ ´ëÇÑ ³»¿ëÀº Xlib ÇÁ·Î±×·¡¹Ö ¼öÁØÀ» ³Ñ¾î¼°í ±× ÀÚü·Î µµ ¹æ´ëÇϱ⠶§¹®¿¡ ¿©·¯ºÐÀÇ ÀÇÁö¿¡ ¸Ã±é´Ï´Ù. À§¿¡¼ ¼³¸íÇÑ ÇÔ¼öµéÀ» °¡Áö°í ´ÙÀ½¿¡´Â ½Ç½ÀÀ» Çغ¸±â·Î ÇսôÙ. ±×¸®°í °£·«ÇÏ°Ô ÆùÆ®¸¦ °¡Áö°í ¹®ÀÚ¿ ³ªÅ¸³»±â¸¦ ´Ù·ç¾îº¸°Ú½À´Ï´Ù. X ÇÁ·Î±×·¡¹Ö ¿½ÉÈ÷ ÇϽʽÿä. :) |