描画とテキスト出力

Topへ

 

述語名/引数  (eg:SetPen *r *g *b *size)
要約 ペンの色と太さを設定します。
互換性 Win
解説 *r *g *b 光の三原色を指定します。それぞれ赤、緑、青です。それぞれの値の範囲は0〜255です。
*size ペンの太さをビット単位で指定します。

ペンは、線を描画する操作で、にその設定が使われます。

 


述語名/引数  (eg:SetTextColor *r *g *b)
要約 文字の色を指定します。
互換性 Win
解説 *r *g *b 光の三原色を指定します。それぞれ赤、緑、青です。それぞれの値の範囲は0〜255です。

 


述語名/引数  (eg:SetBrush *r *g *b)
要約 ブラシの色を指定します。
互換性 Win
解説 ブラシは、塗りつぶす操作で使われます。

 


述語名/引数  (eg:Rectangle *x1 *y1 *x2 *y2)
要約 矩形を描画します。
引数 *x1 [in] 矩形の左上のx座標を表す整数です。
*y1 [in] 矩形の左上のy座標を表す整数です。
*x2 [in] 矩形の右下のx座標を表す整数です。
*y2 [in] 矩形の右下のy座標を表す整数です。
成功/失敗 true  正しく描画が行なえた。
false 上記以外。
互換性 Win
解説 描画の色はブラシの設定を使います。

 


述語名/引数  (eg:Fill *x *y *r *g *b *fillType)
要約 領域をブラシで塗りつぶします。
互換性 Win
解説 *x *y 塗りつぶし開始点を指定します。
*r *g *b 境界または、塗りつぶす色を光の三原色で指定します。
*fillType 塗りつぶす方法を指定します。
  0 境界の内側を塗りつぶします。
  1 開始点から連続した色を置き換えます。

*fillTypeに0を指定した場合、*r *g *b は境界線の色を表します。
*fillTypeに1を指定した場合、*r *g *bは置き換える領域の色を表します。
*fillTypeの値によらず、塗りつぶしは現在設定されているブラシを用いて行ないます。

 


述語名/引数  (eg:SetPixel *x *y *r *g *b)
要約 点を描画します。
互換性 Win
解説 *x *y 点の座標です。
*r *g *b 光の三原色を指定します。

以下の例では太さの異なる線分を描画します。

(as (test) :(loadModule "eggraph.dll" *2)(test2))
(as (test2):(eg:CreateWindow 10 20 640 480 "線の太さ")
(eg:SetPen 0 0 0 1)
(eg:Line 10 50 600 50)
(eg:SetPen 255 0 0 2)
(eg:Line 10 100 600 100)
(eg:SetPen 0 255 0 4)
(eg:Line 10 150 600 150)
(eg:SetPen 0 0 255 8)
(eg:Line 10 200 600 200)
(eg:SetPen 100 100 50 16)
(eg:Line 10 250 600 250)
(eg:SetPen 100 255 0 32)
(eg:Line 10 300 600 300)
(eg:Update)
(eg:SaveScreen "test.bmp")
(loop))
(as (loop):(eg:GetMessage ?)(loop))


述語名/引数  (eg:Line *x *y)
 (eg:Line *x1 *y1 *x2 *y2)
要約 線を描画します。
互換性 Win
解説 前者の形式は、設定された開始点から*x *yで指定された終了点し線を描画します。開始点はeg:Moveまたは、直前に呼ばれたeg:Lineによって設定されます。次回の開始点は終了点(*x, *y)です。

後者の形式は、開始点と終了点を同時に指定します。次回の開始点は、終了点(*x2, *y2)です。

以下の例では三角形を描画し塗りつぶします。

(as (test) :(loadModule "eggraph.dll" *2)(test2))
(as (test2):(eg:CreateWindow 10 20 640 480 "線と塗りつぶし")
(eg:SetBrush 0 255 0)
(eg:Move 10 10)
(eg:Line 10 400)
(eg:Line 600 400)
(eg:Line 10 10)
(eg:Fill 200 200 255 255 255 ;rgb
             1) ;Fill type
(eg:SetPixel 200 200 255 255 255)
(eg:Line 200 195 300 100)
(eg:TextOut 300 90 "塗りつぶし開始点")
(eg:Update)
(loop))
(as (loop):(eg:GetMessage ?)(loop))


述語名/引数  (eg:Move *x *y)
要約 線描画の開始点を設定します。
互換性 Win
解説 このルールは何も描画しません。

 


述語名/引数  (eg:SetFont *h *w *escape *or *we *it *u *st *cs *name)
要約 フォントを設定します。
互換性 Win
解説 *h 文字の高さを指定します。
*w 文字の幅を指定します。
*escape X軸との角度を0.1度単位で指定します。
*or *escapeと同じ値を指定してください。
*we 文字のウェイトを指定します。範囲は0〜1000です。400で標準です。
*it 斜字体を指定します。1のとき斜字体、0のとき斜字体なし
*u 下線を指定します。1のとき下線、0のとき下線なし
*st ボールドを指定します。1のときボールド、0のときボールドなし
*cs キャラクタセットを指定します。日本語対応フォントのときSHIFTJIS、英文のみのときANSI。他に、DEFAULT SYMBOL HANGEUL HANGUL GB2312 CHINESEBIG5 JOHAB HEBREW ARABIC GREEK TURKISH VIETNAMESE THAI EASTEUROPE RUSSIAN MAC BALTICが指定可能です。
*name フォント名を指定します。

 


述語名/引数  (eg:TextOut *x *y *text)
要約 文字を描画します。
互換性 Win
解説 eg:SetTextColorで指定された色、eg:SetFontで指定されたフォントで文字を描画します。

以下の例では、フォントと色を指定した文字を描画します。

(as (test) :(loadModule "eggraph.dll" *2)(test2))
(as (test2):(eg:CreateWindow 10 20 640 480 "今日は!")
(eg:SetFont 60 0 0 0 400 0 0 0 SHIFTJIS "MS 明朝")
(eg:SetTextColor 0 0 255)
(eg:TextOut 250 230 "HELLO!")
(eg:Update)
(loop))
(as (loop):(eg:GetMessage ?)(loop))

 


述語名/引数  (eg:Arc *x *y *r *startAngle *sweepAngle)
 (eg:Arc *x1 *y1 *x2 *y2 *sx *sy *ex *ey)
要約 第一形式は正円または弧を描画します。
第二形式は楕円または楕円弧を描画します。
互換性 Win
引数 第一形式
*x [in, 整数] 円の中心のX座標
*y [in, 整数] 円の中心のY座標
*r [in, 整数] 半径
*startAngle [in, 実数] 弧の描画を開始するX座標からの角度。単位は度。
*sweepAngle [in, 実数] *startAngleから弧を描画する角度。単位は度。

第二形式(引数は全て整数)
*x1 [in] 楕円が内接する長方形の左上のX座標
*y1 [in] 楕円が内接する長方形の左上のY座標
*x2 [in] 楕円が内接する長方形の右下のX座標
*y2 [in] 楕円が内接する長方形の右下のY座標
*sx [in] (弧を描画する開始角度を指定するための)楕円の中心から伸びる直線の終端のX座標。
*sy [in] (弧を描画する開始角度を指定するための)楕円の中心から伸びる直線の終端のY座標。
*ex [in] (弧を描画する終了角度を指定するための)楕円の中心から伸びる直線の終端のX座標。
*ey [in] (弧を描画する終了角度を指定するための)楕円の中心から伸びる直線の終端のY座標。

成功/失敗 true  描画が正しく行なわれた
false 上記以外
解説 第一形式では、引数*startAngleと*sweepAngleに実数を指定することに注意してください。

第二形式では、*sx、*syで指定される点と楕円の中心で、この2点を通る直線を指定します。指定された直線と楕円の交点が描画開始点になります。*exと*eyは*sxと*syと同様 の方法で描画終了点を指定します。