Other Alias
XFillRectangle, XFillRectangles, XFillPolygon, XFillArc書式
XFillRectangle(display, d, gc, x, y, width, height)Display *display;
Drawable d;
GC gc;
int x, y;
unsigned int width, height;
XFillRectangles(display, d, gc, rectangles, nrectangles)
Display *display;
Drawable d;
GC gc;
XRectangle *rectangles;
int nrectangles;
XFillPolygon(display, d, gc, points, npoints, shape, mode)
Display *display;
Drawable d;
GC gc;
XPoint *points;
int npoints;
int shape;
int mode;
XFillArc(display, d, gc, x, y, width, height, angle1, angle2)
Display *display;
Drawable d;
GC gc;
int x, y;
unsigned int width, height;
int angle1, angle2;
XFillArcs(display, d, gc, arcs, narcs)
Display *display;
Drawable d;
GC gc;
XArc *arcs;
int narcs;
引き数
- angle1
- 開始角を指定する。 基準は円の中央から3時の方向であり、単位は弧度 * 64である。
- angle2
- 開始角に対して弧の軌跡と領域を指定する。 単位は弧度*64である。
- arcs
- 円弧の配列を指定する。
- d
- ドロウアブルを指定する。
- display
- X サーバへの接続を指定する。
- gc
- GC を指定する。
- mode
- 座標モードを指定する。 CoordModeOrigin あるいは CoordModePrevious を渡すことができる。
- narcs
- 配列中の円弧の数を指定する。
- npoints
- 配列中の点の数を指定する。
- nrectangles
- 配列中の長方形の数を指定する。
- points
- 点の配列を指定する。
- rectangles
- 長方形の配列を指定する。
- shape
- サーバの効率向上の補助をするための形状を指定する。 Complex, Convex, Nonconvex のいずれかを渡すことができる。
- width
-
- height
- 幅と高さを指定する。
- x
-
- y
- x, y 座標を指定する。
説明
関数 XFillRectangle および XFillRectangles は、4点
[x,y] [x+width,y] [x+width,y+height] [x,y+height]
についての FillPolygon プロトコルリクエストが指定されたかのように、指定した長方形(単数あるい は複数)を塗りつぶす。
どちらの関数も、指定された x, y 座標・幅と高さ・GC を使う。
XFillRectangles は配列内で列挙されている順に長方形を塗りつぶす。 どんな長方形を与えても、 XFillRectangle および XFillRectangles は1つのピクセルを1回しか描画しない。 長方形が重なっている場合、重なっている部分は複数回描画される。
どちらの関数も以下の GC コンポーネントを使用する: function, plane-mask, fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask。 これらはまた、以下の GC モード依存のコンポーネントを使用する: foreground, background, tile, stipple, tile-stipple-x-origin, and tile-stipple-y-origin。
XFillRectangle および XFillRectangles はエラー BadDrawable, BadGC, BadMatch を起こすことがある。
XFillPolygon は指定されたパスで閉じた領域を塗りつぶす。 リストの最後の点が最初の点と一致しない場合には、パスは自動的に閉じられる。 XFillPolygon は、ある1つのピクセル領域について1回しか描画しない。 CoordModeOrigin では全ての座標を原点からの相対位置で表し、 CoordModePrevious では全ての座標を前の点からの相対位置で表す。
指定した shape によっては、以下のことが起こる:
- もし shape が Complex ならば、パスは自己干渉するかもしれない。 パス上で隣接する点が一致しても、これは自己干渉として扱わない。
- shape が Convex (凸包)の場合には、多角形の内側の任意の点の組について、これらを繋ぐ線分 はパスと干渉しない。 凸包になることをクライアントが知っている場合、 Convex を指定することで効率を高めることができる。 凸包でないパスに対して Convex を指定した場合、表示結果は未定義である。
- shape が Nonconvex の場合、パスは自己干渉しないが、かならずしも凸包ではない。 これをクライアントが知っている場合、 Complex でなく Nonconvex を指定することで描画効率を上げることができる。 If you specify パスが自己干渉している場合に Nonconvex を指定した場合の表示結果は未定義である。
GC 制御の fill-rule は、自己干渉する多角形の塗りつぶしの挙動を制御する。
この関数は以下の GC コンポーネントを使用する: function, plane-mask, fill-style, fill-rule, subwindow-mode, clip-x-origin, clip-y-origin, clip-mask。 また、以下の GC モード依存コンポーネントを使用する: foreground, background, tile, stipple, tile-stipple-x-origin, tile-stipple-y-origin。
XFillPolygon はエラー BadDrawable, BadGC, BadMatch, BadValue を起こすことがある。
それぞれの円弧に対して、 XFillArc や XFillArcs は指定した円弧が記述する無限に細いパスおよび、GC 内で指定した arc-mode によって決まる1つあるいは2つの線分によって閉じられた領域を塗りつぶす。 ArcChord の場合には、円弧の端点を繋ぐ1つの線分が使用される。 ArcPieSlice の場合には、円弧の端点と中心点を結ぶ2つの線分が使用される。 XFillArcs は配列内に列挙されている順に円弧を塗りつぶす。 与えられた円弧に対し、 XFillArc と XFillArcs は1つの点をそれぞれ1度しか描画しない。 塗りつぶし領域が重なっている場合、重なっているピクセルは複数回描画され る。
どちらの関数も以下の GC コンポーネントを使用する: function, plane-mask, fill-style, arc-mode, subwindow-mode, clip-x-origin, clip-y-origin, clip-mask。 また、これらの関数は以下の GC モード依存コンポーネントを使用する: foreground, background, tile, stipple, tile-stipple-x-origin, tile-stipple-y-origin。
XFillArc および XFillArcs はエラー BadDrawable, BadGC, BadMatch を起こすことがある。
返り値
- BadDrawable
- 引き数 Drawable の値が、定義されている Window あるいは Pixmap を指してい ない。
- BadGC
- 引き数 GContext の値が、定義されている GContext を指していない。
- BadMatch
- InputOnly ウィンドウが Drawable として使用された。
- BadMatch
- 引き数や引き数の組の型・範囲は正しいが、そのリクエストが要求す る他の条件に適合できなかったものがある。
- BadValue
- 指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。