XFillRectangle(3X11)

名前
XFillRectangle, XFillRectangles, XFillPolygon, XFillArc, XFillArcs - 長方形、多角形、円弧を塗りつぶす

書式
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
    座標モードを指定する。 あるいは を渡すことができる。

narcs
    配列中の円弧の数を指定する。

npoints
    配列中の点の数を指定する。

nrectangles
    配列中の長方形の数を指定する。

points
    点の配列を指定する。

rectangles
    長方形の配列を指定する。

shape
    サーバの効率向上の補助をするための形状を指定する。 のいずれかを渡すことができる。

width

height
    幅と高さを指定する。

x

y   x, y 座標を指定する。

説明
関数 および は、4点

[x,y] [x+width,y] [x+width,y+height] [x,y+height]

についての プロトコルリクエストが指定されたかのように、指定した長方形(単数あるい は複数)を塗りつぶす。

どちらの関数も、指定された x, y 座標・幅と高さ・GC を使う。

は配列内で列挙されている順に長方形を塗りつぶす。 どんな長方形を与えても、 および は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。

および はエラー を起こすことがある。

は指定されたパスで閉じた領域を塗りつぶす。 リストの最後の点が最初の点と一致しない場合には、パスは自動的に閉じられる。 は、ある1つのピクセル領域について1回しか描画しない。 では全ての座標を原点からの相対位置で表し、 では全ての座標を前の点からの相対位置で表す。

指定した shape によっては、以下のことが起こる:

•   もし shape が ならば、パスは自己干渉するかもしれない。 パス上で隣接する点が一致しても、これは自己干渉として扱わない。

•   shape が (凸包)の場合には、多角形の内側の任意の点の組について、これらを繋ぐ線分 はパスと干渉しない。 凸包になることをクライアントが知っている場合、 を指定することで効率を高めることができる。 凸包でないパスに対して を指定した場合、表示結果は未定義である。

•   shape が の場合、パスは自己干渉しないが、かならずしも凸包ではない。 これをクライアントが知っている場合、 でなく を指定することで描画効率を上げることができる。 If you specify パスが自己干渉している場合に を指定した場合の表示結果は未定義である。

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。

はエラー を起こすことがある。

それぞれの円弧に対して、 や は指定した円弧が記述する無限に細いパスおよび、GC 内で指定した arc-mode によって決まる1つあるいは2つの線分によって閉じられた領域を塗りつぶす。 の場合には、円弧の端点を繋ぐ1つの線分が使用される。 の場合には、円弧の端点と中心点を結ぶ2つの線分が使用される。 は配列内に列挙されている順に円弧を塗りつぶす。 与えられた円弧に対し、 と は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。

および はエラー を起こすことがある。

返り値

引き数 Drawable の値が、定義されている Window あるいは Pixmap を指してい
    ない。

引き数 GContext の値が、定義されている GContext を指していない。

ウィンドウが Drawable として使用された。

引き数や引き数の組の型・範囲は正しいが、そのリクエストが要求す
    る他の条件に適合できなかったものがある。

指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

関連項目
XDrawArc(3X11), XDrawPoint(3X11), XDrawRectangle(3X11)
Xlib - C Language X Interface