UNIX環境でグラフィックス(線)を自作プログラムから描画

 
 
 UNIX環境でグラフィックス(線)を自作プログラムから描画するには?
    X-Winodws環境を操作する必要がある。
    これは初学者には敷居が高いのでプログラムの一部を追加・変更すればよいライブラリィを
    予め作成しておいた。
         以下のプログラムでは、左下の座標が (0.0, 0.0)で右上の座標が (1.0, 1.0) の正方形枠内に
    まずは、枠いっぱいに白い線で正方形を描画し、
    その次に黄色い線で 座標(0.2, 0.1) から 座標(0.8, 0.5)に直線を描画している。
    サンプルのユーザー変更部分を適当に変更してみよう。
    [if]文や[for]文内でも描画できる。


 ● 
サンプルプログラム

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
/* xwmsmp.c */
/* cc -lX11 xwmsmp.c */
 
#include <stdio.h>
 
#include "xwmy.c"
 
int main(void)
{
 
    XW_Open();
 
    /* <<< for user start >>> */
 
    /* World Window Set */
    DB_WindowNV(0.0, 0.0, 1.0, 1.0);
 
    /* Line Color */
    XW_SetColor(XW_Color_White);
 
    DB_DrawRect(0.0, 0.0, 1.0, 1.0);
 
    /* Line Color */
    XW_SetColor(XW_Color_Green);
 
    DB_DrawLine(0.2,0.1,0.8,0.5);
 
    /* <<< for user end >>> */
 
    XW_Refresh();
    printf("Push key");
    getchar();
    XW_Close();
 
    return 0;
 
}
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
コメント:ファイル名
コメント:コンパイル
-
いつも通り
-
同じフォルダにこのファイルが必要
-
いつも通り
-
-
グラフィックを使えるようにする。
-
これ以降がユーザー変更部分
-
-
ワールド座標系のウインドウ設定
 (始点X、始点Y、終点X、終点Y)
-
線の色を 白 に設定
-
四角形描画(始点X、始点Y、終点X、終点Y)
-
-
線の色を 緑 に設定
-
直線描画(始点X、始点Y、終点X、終点Y)
-
これ以前がユーザー変更部分
-
画面を更新
キー入力を促す
入力待ち
グラフィックを終了
いつも通り 
-

     例えば、xwmsmp.c として保存する。
 


  コンパイルから実行まで
    
   まず、以下のリンク先テキスト xwmy.c を自作プログラムファイルと同じところにおいてほしい。
   ファイル名は必ず xwmy.c とすること。
   (本講義では cprogフォルダ内)

   次にコンパイルは、例えばファイル名が xwmsmp.c の場合、以下のようにする。
   $ cc  -lX11 xwmsmp.c [Enter]
   (環境によっては $ cc -I/usr/openwin/include/ -L/usr/openwin/include/ -lX11 xwmsmp.c  [Enter]) 

   実行は これまでと同様
   $ ./a.out [Enter]
   でよい。
   別のWindowが開いて描画される。描画内容を確認したらもとの端末エミュレータのWindowで
   [Enter]キーを押して終了する。
   


 
 ライブラリィの簡単な仕様解説
 
     ・ DB_Window(始点X、始点Y、終点X、終点Y); 
     ワールド座標系のウインドウ設定。始点は左下、終点は右上。座標は倍精度実数可。
   ・ DB_WindowNV(始点X、始点Y、終点X、終点Y);
     DB_Windowに加えて、WindowのXY縦横比にあわせてビューポートの縦横比を再設定する。

   ・ DB_DrawLine(始点X、始点Y、終点X、終点Y);
     直線を描画、座標は倍精度実数可。
   ・ DB_DrawRect(始点X、始点Y、終点X、終点Y);
     線で四角形を描画、座標は倍精度実数可。

   ・ XW_SetColor(色の名前)

    ・ XW_SetColorで使える色の名前
       黒  ■ : XW_Color_Black  
       青    : XW_Color_Blue   
       赤    : XW_Color_Red    
       紫    : XW_Color_Magenta
       緑    : XW_Color_Green  
       水色   : XW_Color_Aqua   
       黄色   : XW_Color_Yellow 
       白    : XW_Color_White  
       灰色  : XW_Color_Gray  

   ・ XW_Open();
     グラフィックを使えるようにする。別のWindowが開く。
   ・ XW_Close();
     グラフィックを終了。別のWindowが閉じる。
   ・ XW_Refresh();
     画面を更新する。これを行わないと描画が反映されない。
   

 戻る