(4) モデルの消去 mqodeletemodel( model ); (5) 終了処理 ( プログラム終了時にやってください ) mqocleanup(); 3. 使い方 (2) 連番ファイルを読み込んで表示する場合 (1) 初期化 (ARToolKit の場合,argInit() の後に使用 )

Size: px
Start display at page:

Download "(4) モデルの消去 mqodeletemodel( model ); (5) 終了処理 ( プログラム終了時にやってください ) mqocleanup(); 3. 使い方 (2) 連番ファイルを読み込んで表示する場合 (1) 初期化 (ARToolKit の場合,argInit() の後に使用 )"

Transcription

1 GLMetaseq.h の中身 渡部修平 メタセコイアで作成した 3D モデルを OpenGL で表示させるためには, 工学ナビ ( が公開している C/C++ 用のライブラリ GLMetaseq があります 作成しているプログラムのプロジェクトに GLMetaseq.h と GLMetaseq.c を追加し, プログラム中で GLMetase.h をインクルードして使用します 以下は GLMetaseq.h のソースです #ifndef GLMETASEQ_H #define GLMETASEQ_H ================ メタセコイアで作成したモデル (*.mqo) を OpenGL 上に読み込む関数をまとめた C/C++ 用ヘッダ ================ /* GLMetaseq MIT ライセンス Copyright (c) 2009 Sunao Hashimoto and Keisuke Konishi 以下に定める条件に従い 本ソフトウェアおよび関連文書のファイル ( 以下 ソフトウェア ) の複製を取得するすべての人に対し ソフトウェアを無制限に扱うことを無償で許可します これには ソフトウェアの複製を使用 複写 変更 結合 掲載 頒布 サブライセンス および / または販売する権利 およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます 上記の著作権表示および本許諾表示を ソフトウェアのすべての複製または重要な部分に記載するものとします ソフトウェアは 現状のまま で 明示であるか暗黙であるかを問わず 何らの保証もなく提供されます ここでいう保証とは 商品性 特定の目的への適合性 および権利非侵害についての保証も含みますが それに限定されるものではありません 作者または著作権者は 契約行為 不法行為 またはそれ以外であろうと ソフトウェアに起因または関連し あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求 損害 その他の義務について何らの責任も負わないものとします */ /* 1. このヘッダを使う上での注意点 読み込み可能なテクスチャの画像形式は bmp,tga,jpeg,png ただし jpeg の読み込みには JPEG ライブラリ (libjpeg.lib, jpeglib.h) が別途必要 jpeg の読み込みを有効にするには, このヘッダの DEF_USE_LIBJPEG を 1 にすること png の読み込みには PNG ライブラリ (libpng.lib, zlib.lib, png.h,zlib.h) が別途必要 png の読み込みを有効にするには, このヘッダの DEF_USE_LIBPNG を 1 にすること テクスチャ画像のサイズは 一辺がの n 乗サイズ (64,128,256 ) の正方形 に限る 2. 使い方 (1) 1 つの MQO ファイルを読み込んで表示する場合 (1) 初期化 (ARToolKit の場合,argInit() の後に使用 ) mqoinit(); (2) ファイルからのモデルの読み込み MQO_MODEL model; model = mqocreatemodel( "mario.mqo", 1.0 ); (3) モデルの呼び出し mqocallmodel( model );

2 (4) モデルの消去 mqodeletemodel( model ); (5) 終了処理 ( プログラム終了時にやってください ) mqocleanup(); 3. 使い方 (2) 連番ファイルを読み込んで表示する場合 (1) 初期化 (ARToolKit の場合,argInit() の後に使用 ) mqoinit(); (2) 連番シーケンスの作成 例 :mario0.mqo ~mario9.mqo を読み込む MQO_SEQUENCE seq; seq = mqocreatesequence( "mario%d.mqo", 10, 1.0 ); (3) 連番シーケンスの指定フレームの呼び出し (i はフレーム番号 ) mqocallsequence( seq, i ); (4) 連番シーケンスの消去 mqodeletesequence( seq ); (5) 終了処理 ( プログラム終了時にやってください ) mqocleanup(); 4. 主な仕様 */ 表示機能 サポートしている MQO ファイルのバージョンは Metasequoia Ver1.0/2.0~.4 対応している材質情報色 ( 光 ) テクスチャマップ ( バンプマップ非対応 /UV マッピングのみ ) 対応しているオブジェクト情報表示 / 非表示の切り替えスムージングの有無頂点法線を決めるときのスムージング角頂点情報面情報 ( 頂点カラー非対応 ) 曲面 鏡面 回転体には非対応 メタボールは非対応 仕様 チャンク名は原則として大文字と小文字の区別をしないことになっているが区別してしまっている. テクスチャのパスに多バイト文字をつかっていてそのなかに '\'(0x5c) や '/'(0x2f) がはいっているとうまくテクスチャが読めない. 未着色のマテリアルに対応していない. Object チャンク face チャンクの材質インデックス (M(%d)) が -1 に未対応. ユーザが任意で設定 #define MAX_TEXTURE 100 // テクスチャの最大取り扱い数 #define MAX_OBJECT 50 // 1 個のMQOファイル内の最大オブジェクト数 #define SIZE_STR 256 // 文字列バッファのサイズ #define DEF_IS_LITTLE_ENDIAN 1 // エンディアン指定 (intel 系 =1) #define DEF_USE_LIBJPEG 0 // libjpegの使用 (: 使用 0: 未使用 )

3 #define DEF_USE_LIBPNG 0 // libpng の使用 (: 使用 0: 未使用 ) コンパイルオプション // JPEGを使用する #ifdef D_JPEG #undef DEF_USE_LIBJPEG #define DEF_USE_LIBJPEG 1 // JPEGを使用しない #ifdef D_NO_JPEG #undef DEF_USE_LIBJPEG #define DEF_USE_LIBJPEG 0 // PNGを使用する #ifdef D_PNG #undef DEF_USE_LIBPNG #define DEF_USE_LIBPNG 1 // PNGを使用しない #ifdef D_NO_PNG #undef DEF_USE_LIBPNG #define DEF_USE_LIBPNG 0 ヘッダ #ifdef WIN32 #include <windows.h> #else #ifndef MAX_PATH #define MAX_PATH 256 #ifndef TRUE #define TRUE (1==1) #ifndef FALSE #define FALSE (1!=1) #include <stdio.h> #include <stdlib.h> #include <math.h> #ifdef APPLE #include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h> #include <OpenGL/glext.h> #else #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> // #include <gl/glext.h>

4 機能設定 libjpeg 使用設定 #if DEF_USE_LIBJPEG #define XMD_H // INT16 と INT32 の再定義エラーを防ぐ #ifdef FAR #undef FAR #include "jpeglib.h" #pragma comment(lib,"libjpeg.lib") 機能設定 libpng 使用設定 #if DEF_USE_LIBPNG #include "png.h" #include "zlib.h" #pragma comment(lib,"libpng.lib") #pragma comment(lib,"zlib.lib") マクロ定義 最大値マクロ #ifndef MAX #define MAX(a, b) (((a) > (b))? (a) : (b)) 型定義 TGA フォーマット #define DEF_TGA_COLOR_MAP_FLAG_VALID 1 #define DEF_TGA_TYPE_NON 0 #define DEF_TGA_TYPE_INDEX 1 #define DEF_TGA_TYPE_FULL 2 #define DEF_TGA_TYPE_MONO 3 #define DEF_TGA_TYPE_RLEINDEX 9 #define DEF_TGA_TYPE_RLEFULL 10 #define DEF_TGA_TYPE_RLEMONO 11 #define DEF_TGA_BIT_INFO_RIGHT_TO_LEFT 0x00 #define DEF_TGA_BIT_INFO_LEFT_TO_RIGHT 0x10 #define DEF_TGA_BIT_INFO_DOWN_TO_TOP 0x00 #define DEF_TGA_BIT_INFO_TOP_TO_DOWN 0x20 unsigned char id; unsigned char color_map_flag; unsigned char type; unsigned short color_map_entry; unsigned char color_map_entry_size; unsigned short x; unsigned short y;

5 unsigned short unsigned short unsigned char unsigned char } STR_TGA_HEAD; width; height; depth; bit_info; 型定義 OpenGL 用色構造体 (4 色 float) GLfloat r; GLfloat g; GLfloat b; GLfloat a; } glcolor4f; 型定義 OpenGL 用 2 次元座標構造体 (float) GLfloat x; GLfloat y; } glpoint2f; 型定義 OpenGL 用 3 次元座標構造体 (float) typedef struct tag_glpoint3f { GLfloat x; GLfloat y; GLfloat z; } glpoint3f; 型定義 面情報構造体 int n; // 1つの面を構成する頂点の数 (~) int m; // 面の材質番号 int v[4]; // 頂点番号を格納した配列 glpoint2f uv[4]; // UVマップ } MQO_FACE; 型定義 材質情報構造体( ファイルから情報を読み込む際に使用 ) glcolor4f col; // 色 GLfloat dif[4]; // 拡散光 GLfloat amb[4]; // 周囲光 GLfloat emi[4]; // 自己照明 GLfloat spc[4]; // 反射光 GLfloat power; // 反射光の強さ int usetex; // テクスチャの有無 char texfile[size_str]; // テクスチャファイル char alpfile[size_str]; // アルファテクスチャファイル GLuint texname; // テクスチャ名 } MQO_MATDATA;

6 型定義 オブジェクト構造体( パーツ1 個のデータ ) char objname[size_str]; // パーツ名 int visible; // 可視状態 int shading; // シェーディング (: フラット /: グロー ) float facet; // スムージング角 int n_face; // 面数 int n_vertex; // 頂点数 MQO_FACE *F; // 面 glpoint3f *V; // 頂点 } MQO_OBJDATA; 型定義 テクスチャプール GLuint texture_id; // テクスチャID int texsize; // テクスチャサイズ char texfile[max_path]; // テクスチャファイル char alpfile[max_path]; // アルファテクスチャファイル unsigned char alpha; // アルファ } TEXTURE_POOL; 型定義 頂点データ ( テクスチャ使用時 ) GLfloat point[3]; // 頂点配列 (x, y, z) GLfloat normal[3]; // 法線配列 (x, y, z) GLfloat uv[2]; // UV 配列 (u, v) } VERTEX_TEXUSE; 型定義 頂点データ ( テクスチャ不使用時 ) GLfloat point[3]; // 頂点配列 (x, y, z) GLfloat normal[3]; // 法線配列 (x, y, z) } VERTEX_NOTEX; 型定義 マテリアル情報( マテリアル別に頂点配列を持つ ) int isvalidmaterialinfo; // マテリアル情報の有効 / 無効 int isusetexture; // テクスチャの有無 :USE_TEXTURE / NOUSE_TEXTURE GLuint texture_id; // テクスチャの名前 (OpenGL) GLuint VBO_id; // 頂点バッファのID(OpenGL) 対応してる時だけ使用 int datanum; // 頂点数 GLfloat color[4]; // 色配列 (r, g, b, a) GLfloat dif[4]; // 拡散光 GLfloat amb[4]; // 周囲光 GLfloat emi[4]; // 自己照明 GLfloat spc[4]; // 反射光

7 GLfloat power; // 反射光の強さ VERTEX_NOTEX *vertex_p; // ポリゴンのみの時の頂点配列 VERTEX_TEXUSE *vertex_t; // テクスチャ使用時の頂点配列 } MQO_MATERIAL; 型定義 内部オブジェクト( つのパーツを管理 ) char objname[size_str]; // オブジェクト名 int isvisible; // 0: 非表示その他 : 表示 int isshadingflat; // シェーディングモード int matnum; // 使用マテリアル数 MQO_MATERIAL *mat; // マテリアル配列 } MQO_INNER_OBJECT; 型定義 MQOオブジェクト ( つのモデルを管理 ) MQO_MODELの実体 unsigned char alpha; // 頂点配列作成時に指定されたアルファ値 ( 参照用 ) int objnum; // 内部オブジェクト数 MQO_INNER_OBJECT obj[max_object]; // 内部オブジェクト配列 } MQO_OBJECT; 型定義 MQO_MODEL 構造体 typedef MQO_OBJECT * MQO_MODEL; // MQO_MODELは独自形式構造体へのアドレス 型定義 MQOシーケンス MQO_MODEL model; // モデル int n_frame; // フレーム数 } MQO_SEQUENCE; 型定義 glext.h からのVBO Extension の定義 #ifdef WIN32 #define GL_ARRAY_BUFFER_ARB 0x8892 usage); #define GL_STATIC_DRAW_ARB 0x88E4 typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); typedef void (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, int size, const GLvoid *data, GLenum グローバル変数定義 #ifdef GLMETASEQ_C #define GLMETASEQ_C EXTERN #else #define GLMETASEQ_C EXTERN extern

8 GLMETASEQ_C EXTERN int g_isvbosupported; // OpenGL の頂点バッファのサポート有無 #ifdef WIN32 // VBO Extension 関数のポインタ GLMETASEQ_C EXTERN PFNGLGENBUFFERSARBPROC glgenbuffersarb; GLMETASEQ_C EXTERN PFNGLBINDBUFFERARBPROC glbindbufferarb; GLMETASEQ_C EXTERN PFNGLBUFFERDATAARBPROC glbufferdataarb; GLMETASEQ_C EXTERN PFNGLDELETEBUFFERSARBPROC gldeletebuffersarb; // VBO 名前生成 // VBO 結びつけ // VBO データロード // VBO 削除 #undef GLMETASEQ_C EXTERN 関数宣言 #ifdef cplusplus extern "C" { // 初期化 void mqoinit(void); // 終了処理 void mqocleanup(void); // モデル生成 MQO_MODEL mqocreatemodel(char *filename, double scale); // シーケンス生成 MQO_SEQUENCE mqocreatesequence(const char *format, int n_file, double scale); // シーケンス生成 ( 拡張版 ) MQO_SEQUENCE mqocreatesequenceex(const char *format, int n_file, double scale, int fade_inout, unsigned char alpha); // モデル呼び出し void mqocallmodel(mqo_model model); // シーケンス呼び出し void mqocallsequence(mqo_sequence seq, int i); // モデルの削除 void mqodeletemodel(mqo_model model); // シーケンスの削除 void mqodeletesequence(mqo_sequence seq); #ifdef cplusplus } // -- end of header --

GLMetaseq.c の中身 渡部修平 メタセコイアで作成した 3D モデルを OpenGL で表示させるためには, 工学ナビ ( が公開している C/C++ 用のライブラリ GLMetaseq があ

GLMetaseq.c の中身 渡部修平 メタセコイアで作成した 3D モデルを OpenGL で表示させるためには, 工学ナビ (  が公開している C/C++ 用のライブラリ GLMetaseq があ GLMetaseq.c の中身 0810960080 渡部修平 メタセコイアで作成した 3D モデルを OpenGL で表示させるためには, 工学ナビ (http://kougakunavi.net/artoolkit.html) が公開している C/C++ 用のライブラリ GLMetaseq があります 作成しているぷろぐらむのプロジェクトに GLMetaseq.h と GLMetaseq.hc

More information

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

コンピュータグラフィックスS 演習資料 コンピュータグラフィックス S 演習資料 第 4 回シェーディング マッピング 九州工業大学情報工学部システム創成情報工学科講義担当 : 尾下真樹 1. 演習準備 今回の演習も 前回までの演習で作成したプログラムに続けて変更を行う まずは シェーディングの演習のため 描画処理で 回転する一つの四角すいを描画するように変更する 画面をクリア ( ピクセルデータと Z バッファの両方をクリア ) glclear(

More information

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

スライド 1

スライド 1 Graphics with Processing 2007-11 シェーディングとテクスチャマッピング http://vilab.org 塩澤秀和 1 11.1 シェーディング シェーディング シェーディングとは Shading= 陰影づけ 光の反射 材質のモデル ( 前回 ) ポリゴンの陰影計算モデル = シェーディングモデル シェーディングモデル フラットシェーディング ポリゴンを単一色で描画

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 1 10: ファイル入出力 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/teachers/w48369 2/CPR1/ 2016-06-15 今日の内容 2 標準ライブラリ関数によりファイルの出力を行う画像ファイルの生成を例題として 配列の作成を復習する 文字列の扱いを復習する

More information

Microsoft Word - no15.docx

Microsoft Word - no15.docx 7. ファイルいままでは プログラムを実行したとき その結果を画面で確認していました 簡単なものならそれでもいいのですか 複雑な結果は画面で見るだけでなく ファイルに保存できればよいでしょう ここでは このファイルについて説明します 使う関数のプロトタイプは次のとおりです FILE *fopen(const char *filename, const char *mode); ファイルを読み書きできるようにする

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

Fair Curve and Surface Design System Using Tangent Control

Fair Curve and Surface Design System Using Tangent Control 情報工学 2016 年度後期第 6 回 [11 月 16 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報講座創造科学技術大学院情報科学専攻 三浦憲二郎 講義アウトライン [11 月 16 日 ] ビジュアル情報処理 3 モデリング 3.3 曲線 曲面 OpenGL 色の取り扱い シェーディング 照明モデルと照光処理 拡散光 鏡面光 環境光 ビジュアル情報処理 3-3 曲線 曲面 3-3-1

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラマー勉強会 1 回 basic.h 補足 [ 修飾子 ] const 付けた変数は初期化以外で値を設定することができなくなる 定数宣言に使う unsigned 付けた変数は符号がなくなり 正の値しか設定できない [ 条件コンパイル ] #ifdef M ここ以前に M がマクロとして定義されていれば ここ以下をコンパイルする #ifndef M ここ以前に M というマクロが定義されていなければ

More information

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く 変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを

More information

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用 RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項

More information

PowerPoint Presentation

PowerPoint Presentation ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラミング応用演習 第 3 回構造体, ファイル入出力 先週の出席確認へのコメント 暗号を破りたいが 平文の候補が多すぎる 人間の目で確認する代わりに どんなプログラムがあればよいか? 辞書を挙げた人が多かった 正しい着眼です 何億個もの平文候補が想定されるので 形態素解析や品詞判別を挙げた人もいます 辞書に近い回答で悪くはないのですが 平文候補ごとにあまり高機能なものを呼び出すと時間がかかる

More information

スライド 1

スライド 1 Graphics with Processing 2008-12 モデリング http://vilab.org 塩澤秀和 1 12.1 3D モデリング モデリング 3Dモデルを作り上げること オブジェクト座標系で基本図形やポリゴンを組み合わせる テクスチャ x テクスチャ z y 2 12.2 オブジェクトの関数例 複雑なオブジェクトは, 大きさ 1 を目安としてモデリングし, 関数にしておくと利用しやすい

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長

More information

AquesTalk10 Win マニュアル

AquesTalk10 Win マニュアル AquesTalk10 Win マニュアル 株式会社アクエスト www.a-quest.com 概要 本文書は 音声合成ライブラリ AquesTalk10 Win をアプリケーションに組み込んで使用するためのプログラミングの方法 注意点を示したものです AquesTalk10 は かな表記の音声記号列から WAV 音声データを生成するライブラリです AquesTalk10 は 声質パラメータを指定することで様々な声質の音声を生成できる特徴があります

More information

AquesTalk Win Manual

AquesTalk Win Manual AquesTalk Win マニュアル 株式会社アクエスト http://www.a-quest.com/ 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと サウンドデバイスに出力する 2

More information

Microsoft Word - Cプログラミング演習(10)

Microsoft Word - Cプログラミング演習(10) 第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,

More information

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a = 問 1 配列の宣言整数型配列 data1 にデータが初期設定されている この配列 data1 のデータを下図のように 整数型配列 data2 に代入しなさい また data2 の内容を printf( "data2[0] = %d\n", data2[0] ); printf( "data2[5] = %d\n", data2[5] ); を用いて出力しなさい 実行結果 data2[0] = 76

More information

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ 第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE

More information

Microsoft Word - Cプログラミング演習(12)

Microsoft Word - Cプログラミング演習(12) 第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char

More information

情報処理演習 B8クラス

情報処理演習 B8クラス 予定スケジュール ( 全 15 回 ) 1 1. 終了 プログラミング言語の基礎 2. 終了 演算と型 3. 終了 プログラムの流れの分岐 (if 文,switch 文など ) 4. 終了 プログラムの流れの繰返し (do, while, for 文など ) 5. 終了 中間レポート1 6. 終了 配列 7. 終了 関数 8. 終了 文字列 ( 文字列の配列, 文字列の操作 ) 9. 終了 ポインタ

More information

演算増幅器

演算増幅器 スペースインベーダーもどき 1000 行プログラムの参考として スペースインベーダーもどきのプログラムを配布する いくつか習って いないものもあるので 補足の説明を加えていく 文字列の描画 文字の描画は glutbitmapcharacter() を用いる これは以下のようにして利用する int i; char *str = "Display String"; glcolor3f(0.0, 0.0,

More information

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78 Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 788) 抽出できない依存関係 Understand の C 言語の解析 (Fuzzy/Strict) で

More information

Taro-ポインタ変数Ⅰ(公開版).j

Taro-ポインタ変数Ⅰ(公開版).j 0. 目次 1. ポインタ変数と変数 2. ポインタ変数と配列 3. ポインタ変数と構造体 4. ポインタ変数と線形リスト 5. 問題 問題 1 問題 2-1 - 1. ポインタ変数と変数 ポインタ変数には 記憶領域の番地が格納されている 通常の変数にはデータが格納されている 宣言 int *a; float *b; char *c; 意味ポインタ変数 aは 整数型データが保存されている番地を格納している

More information

新・明解C言語 実践編

新・明解C言語 実践編 第 1 章 見 21 1-1 見えないエラー 見 List 1-1 "max2x1.h" a, b max2 List 1-1 chap01/max2x1.h max2 "max2x1.h" #define max2(a, b) ((a) > (b)? (a) : (b)) max2 List 1-2 List 1-2 chap01/max2x1test.c max2 #include

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 1 p 1 T 0 S = i=0 p 0 T i = i=0 2

More information

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう 第 14 回 応用 情報処理演習 ( テキスト : 第 10 章 ) 画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう 特定色の画素の検出 ( テキスト 134 ページ ) 画像データが保存されているファイルを読み込んで, 特定色の画素の位置を検出するプログラムを作成しなさい 元画像生成画像 ( 結果の画像 )

More information

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+) RL78 開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行 ( 統合開発環境編 ) (High-performance Embedded Workshop CS+) 2017/4/7 R20UT2087JJ0103 ソフトウェア事業部ソフトウエア技術部ルネサスシステムデザイン株式会社 はじめに 本資料は 統合開発環境 High-performance Embedded Workshop

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション EnSight 補足資料 POV-Ray 出力 EnSight は 画面に表示されている形状をフリーのレイトレーシング ソフトウェア POV-Ray 用のスクリプト ファイルに出力することができます 出力されたスクリプト ファイルを編集して 物体の様々な属性 ( 表面の反射率 媒質の屈折率等 ) を設定することにより リアリスティックな画像の作成が可能になります それには少しだけファイルの加工が必要になります

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

第1回 プログラミング演習3 センサーアプリケーション

第1回 プログラミング演習3 センサーアプリケーション C プログラミング - ポインタなんて恐くない! - 藤田悟 [email protected] 目標 C 言語プログラムとメモリ ポインタの関係を深く理解する C 言語プログラムは メモリを素のまま利用できます これが原因のエラーが多く発生します メモリマップをよく頭にいれて ポインタの動きを理解できれば C 言語もこわくありません 1. ポインタ入門編 ディレクトリの作成と移動 mkdir

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる

More information

スライド 1

スライド 1 C# の基本 ~ ファイル読み込み ~ 今回学ぶ事 今回はファイル読み書きに必要 BinaryReader クラスについて記載する ファイル参照ダイアログである OpenFileDialog クラスについても理解を深める また Bitmap クラスを用いた Bitmap ファイルの読み込み方法についても学ぶ フォーム作り まず label picturebox を配置する ツールボックスより左クリックで選択する

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 複雑系科学演習 1 コンピュータグラフィックス 担当畔上秀幸情報科学研究科複雑系科学専攻 今日の話題 STL ファイルを読み込んで表示する. STL データをどのようなデータ構造に格納しているか? 配列を用いる方法 構造体を用いる方法 読み込んだデータをどのように使うか? lesson8_1.c の説明 solid NOTITLE facet normal 00e+00 000e+00 1.000000e+00

More information

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

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識 ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識 4 次の画像のキャプチャ指示 5マーカの信頼度の比較 6マーカの位置 姿勢の計算 7バッファの内容を画面に表示

More information

AquesTalk for WinCE プログラミングガイド

AquesTalk for WinCE プログラミングガイド AquesTalk for WinCE プログラミングガイド ( 株 ) アクエスト 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk for WinCE ( 以下 AquesTalk) をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと

More information

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt 今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ

More information

AquesTalk Mac マニュアル

AquesTalk Mac マニュアル AquesTalk Mac マニュアル 2010/1/6 ( 株 ) アクエスト http://www.a-quest.com/ 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk Mac( 以下 AquesTalk ) をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk Mac は Win 版の AquesTalk

More information

Computer Graphics

Computer Graphics Graphics with Processing 2009-14 モデリング http://vilab.org 塩澤秀和 1 14.1 3D モデリング モデリング 3Dオブジェクト ( 物体 ) の形状を数値データの集合で表すこと オブジェクト座標系で基本図形やポリゴンを組み合わせる テクスチャ x テクスチャ z y 2 14.2 オブジェクトの関数化 複雑なオブジェクトは, 大きさ 1 を目安としてモデリングし,

More information

Microsoft Word - Writing Windows Installer's DLL.doc

Microsoft Word - Writing Windows Installer's DLL.doc Windows Installer 形式 DLL ファイルの作成 この文書は Acresso Software の次の文書を元に記載しています http://www.acresso.com/webdocuments/pdf/dlls-for for-ipwi.pdf 検証したバージョン : InstallShield 2009 Premier Edition 概要 InstallShield 2009

More information

Taro-2分探索木Ⅰ(公開版).jtd

Taro-2分探索木Ⅰ(公開版).jtd 2 分探索木 Ⅰ 0. 目次 1. 2 分探索木とは 2. 2 分探索木の作成 3. 2 分探索木の走査 3. 1 前走査 3. 2 中走査 3. 3 問題 問題 1 問題 2 後走査 4. 2 分探索木の表示 - 1 - 1. 2 分探索木とは 木はいくつかの節点と節点同士を結ぶ辺から構成される 2 つの節点 u,v が直接辺で結ばれているとき 一方を親節点 他方を子節点という ある節点の親節点は高々

More information

AquesTalk プログラミングガイド

AquesTalk プログラミングガイド AquesTalk プログラミングガイド ( 株 ) アクエスト 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk をアプリケーションに組み込んで使用するためのプログラミングに関して 方法および注意点を示したものです AquesTalk には 2 種類のライブラリがあります 音声データをメモリ上に生成するものと サウンドデバイスに出力する 2 種類があります 使用するアプリケーションに応じて選択してください

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

Taro-ファイル処理(公開版).jtd

Taro-ファイル処理(公開版).jtd ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd

More information

AquesTalk2 Win マニュアル

AquesTalk2 Win マニュアル 株式会社 AQUEST http://www.a-quest.com/ AquesTalk2 Win Manual 1. 概要 本文書は 規則音声合成ライブラリ AquesTalk2 Win をアプリケーションに組み込んで使用するためのプログラミングに関しての方法および注意点を示したものです AquesTalk2 は 簡単に小型機器への組み込みが出来る音声合成ミドルウェアです このライブラリを用いることで

More information