ページ 11

3次元グラフを作る(2)

Posted: 2010年8月11日(水) 15:09
by HK
HKと申します。プログラムというより数学的な質問になるかもしれませんが、
お手柔らかにお願いします。

WINAPIで以下のサイトにあるような3次元グラフを書くことが目的です。
http://homepage3.nifty.com/ishidate/vcp ... p05_23.htm

このサイトの方法では視点(θとφに依存)を固定しているみたいですが、
私は、θとφを変数にしてユーザー側から入力できるようにしたいと考えています。

そこで以下のような問題が発生しました。
このサイトでは、隠線を処理するため、手前から奥に向かって点をプロットしています。
θ、φを変数にした場合、どのように隠線処理するべきでしょうか。
やはり面倒臭いですが場合分けですかね……

ほとんど数学みたいな問題ですいません

Re:3次元グラフを作る(2)

Posted: 2010年8月11日(水) 15:11
by HK
大学のPCから投稿したため、名前をミスりました

Re:3次元グラフを作る(2)

Posted: 2010年8月11日(水) 18:32
by ISLe
プロットした点の奥行き情報を記録するZバッファを用意するのはどうでしょう。

メモリは消費しますがプログラムは複雑にならないと思います。

Re:3次元グラフを作る(2)

Posted: 2010年8月11日(水) 19:15
by HK
奥行きを記録していった場合、その後、手前にある順に並び変えて描画ということになりますよね。たぶん。
そうなると、時間的な問題であまり良くないことになりそうです。

実は先ほど自己解決しまして、θの値によって4つの場合分けをすることで解決できました。
驚くべきことにφには依らないようです。

次に、新たな問題が発生しました。
約30000000個の点をプロットするのに時間がかかり過ぎてしまうという点です。

添付画像はその表示結果です。

プロットする点の数を減らして、間をポリゴンで補間するという方法を取りたいのですが、
どうもうまくいきません。

また施行錯誤してみようと思います。

解決マークを付けておきますが、なにか良い案があれば教えていただけないでしょうか。