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時の方向に対して開始角を指定。 単位は弧度(degree)*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