XDrawLine(3X11)

名前
XDrawLine, XDrawLines, XDrawSegments, XSegment - 線と多角形の描画、線を表す構造体

書式
XDrawLine(display, d, gc, x1, y1, x2, y2)
      Display *display;
      Drawable d;
      GC gc;
      int x1, y1, x2, y2;

XDrawLines(display, d, gc, points, npoints, mode)
      Display *display;
      Drawable d;
      GC gc;
      XPoint *points;
      int npoints;
      int mode;

XDrawSegments(display, d, gc, segments, nsegments)
      Display *display;
      Drawable d;
      GC gc;
      XSegment *segments;
      int nsegments;

引き数

d   ドロウアブル(drawable)を指定。

display
    X サーバへの接続を指定。

gc  GC を指定。

mode
    座標モードを指定。 か のいずれかを指定する。

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

nsegments
    配列中の線分の数を指定。

points
    点の配列を指定。

segments
    線分の配列を指定。

x1

y1

x2

y2  線で結ばれる点 (x1, y1) と (x2, y2) を指定。

説明
関数 は指定された GC のコンポーネントを使い、指定された点の組 (x1, y1) と (x2, y2) を結ぶ線を描画する。 この関数は一致する端点の接続は行わない。 与えられた任意の線に対して、 は1度だけしか描画を行わない。 線が交差した場合、交点のピクセルは複数回描画される。

関数 は、指定した GC のコンポーネントを使い、 構造体の配列が示す点の組 (point[i], point[i+1]) を結ぶ npoints-1 個の 線を描く。 この関数は配列に入っている順に線を描画する。 中間の点全てにおいて線分は正しく接続され、最初の点と最後の点が一致して いれば最初と最後の点も正しく接続される。 与えられた任意の線について、 は1つのピクセルを2度以上描画しない。 細い(line-width がゼロの)線が交差している場合、交差している点は複数回 描画される。 幅を持つ線が交差している場合は、交差しているピクセルは1度だけ描画される。 つまり、あたかも全体の プロトコルリクエストが単一の、塗りつぶしに対するものであるかのように処 理される。 の場合は全ての座標値は原点からの相対座標となり、 の場合には、最初の点より後の座標は全て前の点からの相対座標となる。

関数は複数の、接続されていない線を描画する。 各線分に対して、 は点 (x1, y1) と (x2, y2) を結ぶ線を描く。 この関数は 構造体の配列に入っている順に線を描画する。一致する端点の接続は行わない。 ある線について、 は1つのピクセルを1度しか描画しない。 線が交差している場合は、交差しているピクセルは複数回描画される。

これら3つの関数が使う GC コンポーネントは以下である。 function, plane-mask, line-width, line-style, cap-style, fill-style, subwindow-mode, clip-x-origin, clip-y-origin, clip-mask. 関数 は、GC の join-style コンポーネントも使用する。 これら3つの関数は、以下の GC モード依存のコンポーネントも使用する。 foreground, background, tile, stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-offset, dash-list.

はエラー を起こすことがある。 はさらに も起こすことがある。

構造体
構造体の内容を示す。

typedef struct {
    short x1, y1, x2, y2; } XSegment;

全ての x, y メンバは符号付き整数である。 width, height メンバは16ビットの符号無し整数である。 プロトコルではこれらの値は16ビットのフィールドしか持たないので、16ビッ トの範囲を越える座標やサイズを生成しないよう注意しなければならない。

返り値

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

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

のウィンドウがドロウアブルとして指定された。

引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する
    他の条件に適合できなかった。 指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

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