¸®´ª½º ±âŸ ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   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 ÇÁ·Î±×·¡¹Ö ¿­½ÉÈ÷ ÇϽʽÿä. :)

HomePage Backward Forward Post Reply List
1998 by swindler