GrWinを用いたグラフィクス・プログラミング

Similar documents
Microsoft PowerPoint 電子情報理工学特論.pptx

Microsoft PowerPoint - 講義資料-mlib

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

コンピュータグラフィックスS 演習資料

基本作図・編集

基本作図・編集

基本作図・編集

インテル(R) Visual Fortran コンパイラ 10.0

Microsoft Word - gnuplot

A. 表の作成 はじめに 講座テキストページに保存されている表 1 の元データをエクセル 2010 にコピーします (No1) 講座テキスト (Web ページ ) に示した表 1 過去 12 年間の為替と外貨準備の推移 のデータ表を選択する この表 1 を選択した状態で WEB ページの 編集 コピ

PowerPoint Presentation

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

. フォントを OS にインストールする インターネット等で入手したフリーのフォントをインストールすることにより Windows に標準でインストールされているフォント以外のものを利用することができます 多数のフォントをインストールするとパソコンの動作が遅くなります 必要なフォント以外はインストール

読取革命Ver.15 かんたん操作ガイド

フリーフォーマット作成

3. 文字の入力 文字 ボタンをクリックします 文字入力したい範囲をドラックし 文字枠を作成します 文字を入力します この作業を繰り返します マウスポインタの形 4. 文字枠のサイズ変更 拡大 ボタンをクリックします 大きさを変えたい文字枠をクリックします マウスポインタを文字枠の右下のハンドル (

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

工程’S 9 ヘルプ Excelバーチャート

演算増幅器

以下のソフトウェアに専用ライセンスを設定することで 変換機能が使えるようになります アプリケーション名バージョン日付 JPGIS-XML ビュー F 7.1.0α 以降 2013/06/27 以降 フリーウェア JPGIS-XML ビュー F のバージョン から XML の 筆 と 図郭

Microsoft Word - Grspes…~…j…}…j…–…A…‰6.0.doc

【Create!Form】「Adobe Acrobat」での動作について

プログラミング実習I

設定ダイアログ KDexcel_differ の各パラメータ ( 機能 ) 設定は 1 つのメインダイアログと 2 つのサブダイアログより行います 1. メインダイアログこのダイアログでは以下の設定が可能です 修正後ファイル 修正前ファイル 項目 ( ) 範囲 ( ) シート 実行モード A 2.

やさしくPDFへ文字入力 v.2.0

Web_store Ver.

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

Microsoft Word - VB.doc

発注図面(平面図)の作成

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

PCOMM 用印刷ユーティリティ ユーザズガイド

GettingStartedTK2

操作方法 XXXTOEMF は コマンドライン形式のアプリケーションです 通常のコマンドと同じように コマンドラインからの実行やバッチファイルに組み込むことが可能です インストールについては, 別紙の KDxxxx コンバートソフトの特記事項について を参照してください ここでは 直接コマンドライン

Microsoft Word - 415Illustrator

14.event-handling

memo

ToDo: 今回のタイトル

FAQ82.xls

読取革命Lite かんたん入門ガイド

ゲームプログラミング講習 第0章 導入

1 〇〇クリッカーマニュアル 目次 クリックすると移動します 目次準備 1. VC または VS2013 をインストール 2. DX ライブラリのダウンロードと解凍 3. なんとかクリッカー プロジェクトのダウンロードと解凍 4. なんとかクリッカー プロジェクトを開く編集編集する部分画

PCOMM用印刷ユーティリティマニュアル第3.1版

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

200_CAD(画面回りの機能)の基本操作

図脳 RAPIDPRO19 体験版チュートリアルマニュアル 体験版チュートリアルマニュアル 1

PowerPoint プレゼンテーション

初めてのプログラミング

もう少し詳しい説明 1. アルゴリズムを構築するための 4 枚のサンプル画像を次々と読み込むここで重要なことは画像を順番に読み込むための文字列操作 for 文の番号 i を画像の番号として使用している strcpy は文字列のコピー,sprinf は整数を文字列に変換,strcat は文字列を繋げる

Microsoft Word - ラベルマイティStep1.doc

PowerPoint プレゼンテーション - 物理学情報処理演習

新規コンポーネントの作成方法

目次 1. デジタル押し花の作り方 3 2. デジタル押し花をきれいに仕上げる方法 まとめ 課題にチャレンジ 19 レッスン内容 デジタル押し花 マイクロソフト社のワープロソフト Word 2010( これ以降 Word と記述します ) の図ツールに搭載されている [ 背景

Microsoft Word - zoom-it-man.doc

演算増幅器

スライド 1

ソフトゼミ B 第 1 回 VisualC++ DX ライブラリの導入 はじめにゼミ B では ゼミ A で学んだ C 言語の基礎を土台に Microsoft Visual C Express Edition( 以下 VisualC++, VC++) の使い方と DX ライブラリ とい

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

Maple 18 スタンドアロン版インストール手順

Microsoft Word - no02.doc

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - kougi4.ppt

TestDesign for Web

Format text with styles

目次 Ⅰ. はじめに P.2 Ⅱ. 作業手順 P.3 Ⅲ. 画面説明 P.4 Ⅳ. 単位とグリッドの設定 P.5 Ⅴ. 基板外形作図 P.6 Ⅵ. ランド作成 P.11 Ⅶ. 配線 P.16 Ⅷ. 輪郭線抽出 P.21 Ⅸ. 外形加工線抽出 P.24 Ⅹ. いろいろな作図機能 P.27 Ⅺ. いろい

計算機プログラミング

<4D F736F F F696E74202D2097D58FB089E6919C8B5A8F708A E B8CDD8AB B83685D>

civil_ver.7.5 新機能.indd

EGS4に対応した粒子軌跡と 計算体系の3次元表示ソフト

Maple 18 ネットワーク版インストール手順

PowerPoint プレゼンテーション

作図コマンド : pscoast -R125/148/30/46 -JM15c -B5g5 -Di -W5 -S235 -X6c -Y4c > test.ps 作図例 : 2 分布図の作成 2.1 点を描く 地点の分布を作図するときは たとえば以下のように行います > pscoast -R125/1

プログラミング基礎

グラフを作成

Microsoft PowerPoint - kougi2.ppt

コンピュータグラフィックス基礎              No

<907D945D F D C789C195CF8D5888EA97978CF68A4A97702E786C7378>

データ構造とアルゴリズム論

Maple 12 Windows版シングルユーザ/ネットワークライセンス

「旅日記」

スライド 1

実習を行う上での心構えについて

C. お客様のパソコンのデスクトップ上 または お客様がご選択したフォルダ内に 圧縮ファ イルの図が表示されます このファイルを選択してクリックしますと 下右図のような画面が 表示され フォルダが現れます D. 上記 C の右図のフォルダ ( ) をクリックしますと 下図のようなファイルの一覧が表

pp2018-pp4base

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

医用工学概論  Medical Engineering (ME)   3年前期の医用工学概論実習と 合わせ、 医療の現場で使用されている 医用機器を正しく安全に使用するために必要な医用工学(ME)の 基礎知識を習得する。

問題 1 次の文章は Excel の作業環境について述べたものである 下線部の記述の正誤を判断し 解答群 { } の記号で答えよ ただし 下線部以外の記述に誤りはないものとする 設問 1. クイックアクセスツールバーには アプリケーション名やファイル名が表示される 設問 2. 数式バーのる ボタンを

<4D F736F F D20837D815B B838B837A838B835F E836782CC91E391D68EE892692E646F63>

SDP Generator

Field Logic, Inc. 標準モード 3D モデル作成 配置編 Field Logic, Inc. 第 1 版

ComicStudio4.0ショートカット一覧

Microsoft Word - CygwinでPython.docx

グラフ作成手順書

MATLAB説明

はじめに 本資料は ( 一財 ) 建設業技術者センターの 監理技術者資格者証インターネット申込みサイト から提出していただく資格者証用写真の画像ファイル ( カラー JPEG 形式 ) を Windows7 にインストールされている画像編集ソフトウェア Microsoft ペイントR を使用して 画

スライド 1

PowerPoint Presentation

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

Mapmakerfor の手順下絵を準備 作者の設定した大きさで作成する場合 下絵にする地図を挿入 トリミングと大きさの調整 大きさを調整した画像を保存 下絵を背景に設定 作成画面の大きさを調整 1 自分で用意した下絵を背景にする場合 下絵を背景に設定 作成画面の大きさを調整 画像が大きい場合シート

Transcription:

GrWin を用いたグラフィクス プログラミング 電気工学科米田知晃 1. はじめに 近年 フリーウェアの開発環境が多く公開されている 本校の情報処理教育でよく用いられている C 言語に関しても Borlamd 社の Borland C++ Compiler ( 以下 BCC とする ) がフリーウェアとして公開され 総合情報処理センターの端末にもインストールされている しかし この開発環境では Windows 上のグラフィックス プログラミングは容易ではない BCC 等のフリーの開発環境を用いて Windows 上でのグラフィクス プログラミングを行うためには 通常 Win32API DirectX OpenGL 等の高度な知識を必要とする しかし "GrWin グラフィクス ライブラリ " を利用することで フリーでの開発環境で比較的簡単に Windows 上でのグラフィクス プログラミングを行うことが出来る "GrWin グラフィクス ライブラリ " は 静岡大学理学部物理学科の溜渕継博氏によって開発されている Windows Xp/2000/NT/Me/9x 上で利用できる Fortran と C のためのフリーなグラフィクス ライブラリである 本稿では このグラフィクス ライブラリのインストール 設定 プログラミングについて述べる 2. GrWin のインストールと設定 GrWin の利用環境としては MinGW Cygwin Open Watcom C/C++ and Fortran 1.0 Borland C++ Compiler 5.5 Digital Mars C/C++ Compilers Intel(R) C++/Fortran Compiler 7.1 Microsoft Visual C++ Version 6.0 Compaq Visual Fortran Version 6 がある これらの開発環境に応じたインストーラがそれぞれ用意されているので 必要なファイルを "GrWin グラフィクス ライブラリ " のホームページ (http://spdg1.sci.shizuoka.ac.jp/grwinlib/) 上からダウンロード 実行するだけで インストールが基本的に完了する インストールが完了したら サンプルファイルを実行して下さい サンプルプログラムは インストール フォルダ ( デフォルタでは "C:\GrWin") 内の demo フォルダ内にある また インストールフォルダ内の "README.html" には サンプルフォルダ内にあるファイルとそのファイルの説明がある Cpad for BCC を使用する場合は コンパイル時のパラメータ設定を "-w-8060 -WC GrWin.lib" に変更する必要がある また コマンドラインからのコンパイルを行う場合は BCC のフォルダ内にコンパイル用のバッチファイルがインストールされているので そのファイルを参照して下さい 3. 簡単なグラフィクス プログラミング 次に実際にプログラムを作成する手順について説明しながら GrWin を用いたグラフィクス プログラミングについて述べる まず最初にグラフィクス プログラミングの基本となる直線を描画するプログラムについて説明し そのプログラムを拡張しながら簡易グラフ機能を備えたグラフィクス プログラムを作成する まず最初に 以下に示す直線を描画するプログラムを作成し コンパイル 実行を行ってください 1: 2: #include <GrWin.h> int main(){ 3: 4: GWinit(); GWopen(0); 5: 6: GWindow(-1,-1,1,1); GWline(-1,-1,1,1); 7: プログラム 1:line.c このプログラムを実行すると 左下から右上への直線が描画される 右上の直線の位置が少しずれて表示されるが これは GrWin のバグのようである 以下に 上記プログラムのそれぞれの行を説明する

1 行目 :GrWin のヘッダファイルのインクルード 3 行目 : ライブラリの初期化 4 行目 : 表示ウインドウのオープン 5 行目 : ウインドウの左下の座標と右上の座標の決定 ( ワールド座標 ) 6 行目 : 直線の描画 この 3-5 行目に関しては 最初は必ず実行するものだと理解して構わない 以下にプログラム 1 で使用している関数について説明をするので 必要に応じて内容を修正して下さい ライブラリの初期化 : int GWinit(void); ライブラリの初期化を行う この際 メイン ( フレーム ) ウィンドウが開かれていなければ grwnd.exe をオプションなしで実行し ウインドウを開く アプリケーション内で 2 度以上の呼び出しを行っても無視される 表示ウインドウのオープン : int GWopen(int NW); ウインドウ番号 NX のウインドウをオープンする ワールド座標系の設定 : int GWindow(float X1, float Y1, float X2, float Y2); ビューポート左下の点と右上の点の座標をワールド座標で与えることにより ワールド座標系を設定する デフォルトでは用紙のサイズは左下を原点に (X1, Y1, X2, Y2) = (0.0, 0.0, 640.0, 640.0/U2*V2) に設定されている (U2,V2) は 規格化論理座標系によるビューポートの右上の点の座標 ビューポートの設定に関しては後述 直線の描画 : int GWline(float X1, float Y1, float X2, float Y2); ワールド座標系の 2 点 (X1, Y1) と (X2, Y2) を結ぶ直線の描画 このサンプル プログラムを基にして 細かい直線を連続的に描画することによって曲線を描くことができる 以下に -1<X<1-1<Y<1 の範囲における Y=X 3 のグラフを描画するプログラムを示す #include <GrWin.h> #define IMAX 40 int main(){ int i; float x1, x2, y1, y2; GWinit(); GWopen(0); GWindow(-1.2,-1.2,1.2,1.2); GWline( 0, -1, 0, 1 ); GWline( -1, 0, 1, 0 ); for ( i=0; i<imax; i++ ) { x1 = -1.0+2.0*(float)i/IMAX; x2 = -1.0+2.0*(float)(i+1)/IMAX; y1 = x1*x1*x1; y2 = x2*x2*x2; GWline( x1, y1, x2, y2 ); プログラム 2:graph-1.c

このプログラムをコンパイル 実行した場合の実行結果は以下のように示される 図 1 graph-1.c のコンパイル 実行結果 この状態では グラフの機能としては不十分なので 以下の機能を追加する グラフ領域を正方形にするグラフの枠の追加グラフの線色と線幅の変更マークの描画 グラフ領域を正方形にするためには ビューポートの設定を行う グラフ枠の描画 グラフに描画する線の色や幅の設定 ペンの設定 マークの描画には それぞれ 四角形の描画 ペンの設定 マークの設定と描画により行う ビューポートの設定 : int GWvport( float U1, float V1, float U2, float V2 ); ビューポートの左下の座標 (U1,V1) と右上の座標 (U2,V2) により グラフ領域を設定する 四角形の描画 :int GWrect( float X1, float Y1, float X2, float Y2 ); ワールド座標系において 2 点 (X1, Y1) と (X2, Y2) を対角線とする四角形を描画する ペンの設定 : int GWsetpen( int IPC, int IPS, int IPW, int MX ); カレント ウィンドウで使用するペンの色, 線種, 線幅, 混合モードを指定する すべての入力変数が -1 の場合にはペン位置が初期化される IPC: 論理色番号 -1: 変更なし 10 : 薄い灰色 0 : 黒 11 : 青灰色 1 : 栗色 12 : 濃い灰色 2 : 暗い緑 13 : 赤 3 : オリーブ 14 : 緑 4 : 濃紺 15 : 黄 5 : 紫 16 : 青 6 : 緑青 17 : 赤紫 7 : 灰色 18 : 水色 8 : 明るい緑 19 : 白 9 : 薄い水色

IPS: 線種 0: 透明 (NULL) 1: 実線 (SOLID) 2: 破線 (DASH) 3: 点線 (DOT) 4: 1 点鎖線 (DASHDOT) 5: 2 点鎖線 (DASHDOTDOT) IPW = 線幅 論理デバイス座標系で指定する 0 を指定するとデバイスによらず 1 ピクセル幅になる MX = 混合モード 0: NOP 8: NOTCOPYPEN 1: BLACK 9: NOTMASKPEN 2: WHITE 10: NOTMERGEPEN 3: NOT 11: NOTXORPEN 4: COPYPEN 12: MASKNOTPEN 5: MASKPEN 13: MASKPENNOT 6: MERGEPEN 14: MERGENOTPEN 7: XORPEN 15: MERGEPENNOT マークの設定 : int GWsetmrk(int MT, float S, int K, int KB, int MX); マーク番号 MT(0-6), 大きさ S( ワールド座標系 ), マークの論理色番号 K, マークの背景色の論理色番号 KB, 混合モード MX を指定する MT = マークの種類 0: 点 1: 2: + 3: 4: + と を重ねあわせたもの 5: 6: その他 : 変更しない S = ドットの大きさ マークの高さ ( ワールド座標系 ) は正の実数とする MT が 0 の場合は, 大きさが S( ピクセル ) の点が指定され, この場合, 描画されるマークの大きさはビュー ( 表示 ) モードに影響されない K = マークの論理色番号 ペンの設定と同様 KB = マークの背景色の論理色番号 ペンの設定と同様 -100: 透明 (default) MX = マークの混合モード ペンの設定と同様 マークの描画 : int GWputmrk(float X, float Y); GWSETMRK で設定されたマークを位置 (X,Y) に描画する マークを構成する線の描画には現在のペンが使われる 以上の関数を用いて プログラム 2 を拡張したプログラムを以下に示す 下線で書かれている部

分が追加部分である #include <GrWin.h> #define IMAX 40 int main(){ int i; float x1, x2, y1, y2; // 表示ウインドウの初期化 GWinit(); GWopen(0) GWvport( 0, 0, 1, 1 ); GWindow(-1.2,-1.2,1.2,1.2); // グラフの枠と軸の描画 GWline( 0, -1, 0, 1 ); GWline( -1, 0, 1, 0 ); GWrect( -1, -1, 1, 1); // ビューポートの設定 // 四角形の描画 // Y=X^3 の曲線の描画 GWsetmrk( 6, 0.05, 13, -1, -1 ); GWsetpen( 16, 1, 5, -1 ); for ( i=0; i<imax; i++ ) { x1 = -1.0+2.0*(float)i/IMAX; x2 = -1.0+2.0*(float)(i+1)/IMAX; y1 = x1*x1*x1; y2 = x2*x2*x2; GWline( x1, y1, x2, y2 ); GWputmrk( x1, y1 ); GWputmrk( x2, y2 ); // マークの指定 // ペンの指定 // マークの描画 // マークの描画 プログラム 3:graph-2.c 追加したプログラムをコンパイル 実行した場合の実行結果を図 2 に示す 図 2 graph-2.c のコンパイル 実行結果 図 3 graph-3.c のコンパイル 実行結果 以上で計算結果を簡易的にグラフ表示ができるようになる しかし これだけではグラフの機能しては不十分であるので X 軸と Y 軸のラベルと数値を示す機能をさらに追加する ラベルや数値

を表示するためには テキストの描画を行う必要がある 以下にテキスト描画のための関数を示す 以下の関数を用いて プログラム 3:graph-2.c を改良すると 図 3 に示される実行結果となるプログラムを作成することができる テキスト用フォントの設定 : int GWsettxt( float H, float A, int IO, int K, int KB, char *FACE ); テキスト用フォントの属性を設定する 使用可能なフォントは TrueType フォントのみ フォント名が空白の場合はデフォールト名または前回使用されたフォントが使われる フォント名が '*' の場合や 設定した属性でフォントの生成に失敗した場合には, フォント ダイアログが呼び出される H = フォントの高さ ( ワールド座標系 ) 0 の場合はデフォールト値を使う 負の場合は現在の値を使う A = フォントの傾き角 反時計回りに 傾き角 /360 の値を入力する 入力範囲は -1.0 < A < 1.0 とする IO = 基準点の位置を指定する 0: 中央 1: 左下 ( デフォルト ) 2: 右下 3: 右上 4: 左上 5: 左 6: 下 7: 右 8: 上 K = 文字の論理色番号 (GWCOLOR の項参照 ) ペンの設定と同様 KB = マークの背景色の論理色番号 ペンの設定と同様 -100 の場合は透明 (default) になる FACE = TrueType フォント名 文字列サイズの取得 : int GWgettxt( float *W, float *H, float *X, float *Y, char *TXT ); 文字列のワールド座標系での幅と高さをを取得する 文字列 ( テキスト ) の描画 : int GWputtxt(float X, float Y, char *TXT); グラフィクス ウィンドウ上に文字列を出力する GrWin グラフィックス ライブラリには 以上の関数の他にも多くの関数が用意されている その他の関数の詳しい機能について知りたい方は 付属のヘルプまたはホームページ上の関数の説明を参照して下さい 4. プログラム実行例 以上の関数を用いて 簡単なグラフィクス機能を持つプログラムを作成した 今回作成したプログラムは 以下の 3 つである a) ランダム ウォーク b) ライフゲーム c) ボールの斜め投げ上げ運動

以上の 3 つのプログラムの基本アルゴリズムは非常に簡単なものである 基本アルゴリズムの部分にグラフィクス部分のプログラムを追加することによって 以下に示すような結果を持つプログラムとすることが出来る 図 4 ランダム ウォークの実行結果 図 5 ライフゲームの実行結果 図 6 ボールの斜め投げ上げ運動の実行結果 それぞれのプログラムは数十 ~ 二百行程度のプログラムであり それほど大きなプログラムではない 基本的な C 言語の文法を理解している学生ならば GrWin ライブラリの関数について少し学習すれば十分に作成可能なプログラムである 5. まとめ 本稿では GrWin グラフィク ライブラリを用いた C 言語によるプログラミングについて述べた 基本的な関数のみの紹介ではあるが その有用性は十分に示せていると思う より汎用的なグラフィクス プログラミングを行うには機能が十分ではないが 決まった計算結果をグラフとして示す場合や計算結果の動きを表示する場合には特に有用なライブラリである