C言語で使える3次元動画関数(3次元版フラクタルの木の表示)




2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を強力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。



・フラクタルで描かれた3次元の木(TREE)を回転させます。
・このコーナーのプログラムはLogomotion作者の佐藤氏作または東京女子大マイコンサークルMOVEの皆さんのによって作成(オリジナルはLOGO言語で作成)されたものをC言語に書き換えたものです。
・Logomotionなどに関する詳細は3Dタートル美術館を参照してください。

3次元版フラクタルの木

void	tree2(double x);
void	tree(double x);
void	rolling(void);


void	main()
{
	tg_openwin(640, 640);
	tg_init();
	tg_setmag(3.0);
	tg_pu();
	tg_bk(100.0);
	tree(50.0);
	rolling();
}


void	tree2(double x)
{
	if(x > 10.0){
		tg_save();
		if(x > 15.0)
			tg_setpc(2);
		else
			tg_setpc(4);
		tg_pd();
		tg_fd(x);
		tg_pu();
		tree2(x * 0.7);
		tg_restore();

		tg_save();
		if(x > 15.0)
			tg_setpc(2);
		else
			tg_setpc(4);
		tg_rt(30.0);
		tg_pd();
		tg_fd(x);
		tg_pu();
		tree2(x * 0.7);
		tg_restore();

		tg_save();
		tg_rr(120.0);
		if(x > 15.0)
			tg_setpc(2);
		else
			tg_setpc(4);
		tg_rt(50.0);
		tg_pd();
		tg_fd(x);
		tg_pu();
		tree2(x * 0.7);
		tg_restore();

		tg_save();
		tg_rl(120.0);
		if(x > 15.0)
			tg_setpc(2);
		else
			tg_setpc(4);
		tg_rt(20.0);
		tg_pd();
		tg_fd(x);
		tg_pu();
		tree2(x * 0.7);
		tg_restore();
	}
}

void	tree(double x)
{
	tg_setpc(2);
	tg_pu();
	tg_bk(x);
	tg_pd();
	tg_fd(x);
	tree2(x);
}

void	rolling()
{
	int	i1;

	tg_view();
	tg_pu();
	tg_manual();
	tg_home();
	tg_dn(90.0);
	tg_mu(50.0);
	tg_bk(200.0);
	tg_setmag(1.0);
	for(i1 = 0; i1 < 72; i1++){
		tg_ml(200 * 3.1415 * 2 / 72);
		tg_rt(5.0);
		tg_dn(30.0);
		tg_refresh();
		if(i1 >= 71)
			break;
		tg_up(30.0);
	}
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...
・TREE(ソースプログラムのダウンロード)

tree2関数 木(TREE)を描きます。tree2関数は再帰的に呼び出されています。 再帰的というのはtree2関数内から自分自身(tree2)を再び呼び出しているという使い方です。
rolling関数   視点を移動して木(TREE)を回転させます。

・TREEをコンパイルしたEXEファイルのダウンロードNew
3DタートルをVisual C++やBorland Cからも使用できるようにするためのライブラリを作成しました(特別C言語講座にアクセス可能な方は、こちらからダウンロードしてください)。 コンパイルしたEXEを上記からダウンロードできます(普通のEXEファイルなのでそのまま実行することができます)。 詳細はダウンロードのページをご覧ください。