• 検索結果がありません。

第 5 回 宿題 「第5回」の宿題の雛形プログラムの

N/A
N/A
Protected

Academic year: 2021

シェア "第 5 回 宿題 「第5回」の宿題の雛形プログラムの"

Copied!
1
0
0

読み込み中.... (全文を見る)

全文

(1)

第 5 回 宿題

「第5回」の宿題の雛形プログラムのcgsample05.cの内容は次のようになっています.

/* (x, y) に色 c で点を打つ関数 (他で定義している) */

extern void point(int, int, const double *);

/* 線分を描く */

void line(int x0, int y0, int x1, int y1, const double *c) {

/*

** (1) 第3回の宿題で作成した線分を描く関数 line() の中身をここに書く */

}

/* p0~p3 を制御点とするベジェ曲線の折れ線近似を色 c で描く */

void bezier(const double *p0, const double *p1,

const double *p2, const double *p3, const double *c) {

static const int STEP = 20; /* ベジェ曲線の分割数 */

/*

** (2) ここに line() を使って4点 p0, p1, p2, p3 を制御点とする ** ベジェ曲線の折れ線近似を色 c で描くプログラムを書く

*/

}

/* bezier() を使って図形を描く */

void draw(int width, int height) {

/*

** (3) 以下を bezier() を使って自分で考えた図形を描くプログラムに書き換える ** (以下はサンプルなので,これに類似していれば減点)

** 引数 width と height は開いたウィンドウの幅と高さの画素数 */

/* 以下省略 */

この雛型プログラムには,外部関数として point(int x, int y, const double *c) と いう関数が用意してあります.しかし,これ以外の関数の中身はコメントまたはサンプルになっ ています.そこで,ここに以下の関数を定義してください.

(1) 「第3回」の宿題で作成した線分を描く関数 line()

(2) 4点 p0, p1, p2, p3 を制御点とする色 cのベジェ曲 線を描く関数 bezier()

(3) bezier () を使って何らかの図形を描く関数 draw()

制御点p0, p1, p2, p3はいずれも2つのdouble型の要素を

持つ配列であるとします.定数STEPはプログラム中で定義しています.また,関数draw() に

は既にbezier() を使って図形を描くサンプルプログラムが組み込まれていますが,これを自分で

考えた図形を描くプログラムに書き換えてください.

プログラムが期待通り動作したら,作成したソースファイル (cgsample05.c) を授業のホーム ページのアップローダからアップロードしてください.期限は11月6日 (水) 中です.

参照

関連したドキュメント

[r]

[r]

[r]

回  テーマ  内  容 . 第 1 回 

第1回目 2015年6月~9月 第2回目 2016年5月~9月 第3回目 2017年5月~9月.

その上で、第一地区、第二地区、第三地区とあるなか、今回の第一地区がその3つの地

協力: 株式会社 ワコールアートセンター/日本映像翻訳アカデミー(R):English Clock/有限会社