Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XDrawSegments(3X11) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XDrawArc(3X11)

XDrawPoint(3X11)

XDrawRectangle(3X11)

XDrawLine(3X11)  —  NEWS-OS Programmer’s Manual

名称

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;

引数

ddrawable を指定します。

displayX サーバへのコネクションを指定します。

gcGC を指定します。

mode座標モードを指定します。 CoordModeOrigin または CoordModePrevious を渡すことができます。

npoints配列の点の数を指定します。

nsegments配列のセグメント数を指定します。

points点の配列を指すポインタを指定します。

segmentsセグメントの配列を指すポインタを指定します。

x1

y1

x2

y2つなげられる点 (x1, y1) および (x2, y2) を指定します。

解説

XDrawLine 関数は、指定された GC の要素を使用し、指定された一組の点 (x1, y1) と (x2, y2) の間に線を引きます。 一致する終点同志に対しては join 処理を行いません。 どのような線が与えられても、 XDrawLine は 2回以上ピクセルを描きません。 線が交差する場合、交差するピクセルは複数回描かれます。 XDrawLines 関数は、指定された GC の要素を使用し、 XPoint 構造体の配列中の各点の組 (point[i], point[i+1]) の間に npoints−1 本の 線を引きます。 線は配列に並べた順に引かれます。 線はすべて中間ポイントで正しく接続し、 最初と最後の点が一致する場合には最初と最後の線は正しく結ばれます。 どのような線が与えられても、 XDrawLines は 2回以上ピクセルを描いたりしません。 細い(線幅 0)線が交差する場合、交差するピクセルは、 複数回描かれます。 幅のあるラインが交差する場合、交差するピクセルは、 あたかもこの PolyLine プロトコルリクエスト全体がひとつのぬりつぶし図形であるかのように 一度だけ描画されます。 CoordModeOrigin は、すべての座標を原点に相対的に扱い、 CoordModePrevious は、2番目以降のすべての座標を前の点に対して相対的に扱います。 XDrawSegments 関数は、複数の線をつながずに引きます。 各セグメントについて、 XDrawSegments は、(x1, y1) と (x2, y2) の間に線を引きます。 線は、 XSegment 構造体の配列に並べられた順に引かれ、終点同志が一致しても join 処理は しません。 いかなる線が与えられても、 XDrawSegments は、2回以上ピクセルを描画しません。 線が交差する場合、交差するピクセルは、複数回描かれます。 3つの関数すべてが、以下の GC の要素を使用します : function、plane-mask、line-width、 line-style、cap-style、fill-style、subwindow-mode、 clip-x-origin、clip-y-origin および clip-mask。 XDrawLines 関数は、join-style GC 要素も使用します。 3つの関数すべては、以下の GC モード依存要素も使用します : foreground、background、tile、stipple、tile-stipple-x-origin、 tile-stipple-y-origin、dash-offset および dash-list。 XDrawLine、 XDrawLines、 および XDrawSegments が発生するのは、 BadDrawable、 BadGC および BadMatch エラーです。 また、 XDrawLines は BadValue エラーも生じます。

構造体

XSegment 構造体は、以下の内容をしています。

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

すべての x, y メンバは signed 型整数です。 横幅と縦の長さのメンバは 16 ビットの unsigned 型変数です。 プロトコルはこれらの値に対して 16 ビットのフィールドしか持っていません。 ですから、16 ビットの範囲を越えて座標やサイズを指定しないよう注意が必要です。

診断

BadDrawable
Drawable 引数の値が、定義された Window または Pixmap を指さない。

BadGC GContext 引数の値が、定義された GContext を指さない。

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

BadMatch ある引数またはひと組の引数の型と範囲は正しいが、リクエストによって 要求されたその他のなにかが一致しない。

BadValue ある数値が、リクエストが許す値の範囲を超えた。 引数の値の範囲が明示されない限り、引数の型によって決まる 最大の範囲まで指定可能です。 選択形式の引数も、このエラーを生ずることがあります。

関連事項

XDrawArc(3X11), XDrawPoint(3X11), XDrawRectangle(3X11)
Xlib − C Language X Interface

NEWS-OS Release 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026