トピック
??? 258556

ポリゴンの回転がおかしくなってしまいます…

グラフィックの回り方がおかしくなってしまいます。どのような計算をすればいいんですか? 画像は載せるために詰めこんだので汚いです。すいません。
2そうだね
プレイ済み
返信[1]
親投稿
あきと SideBurnsM
GTRI命令は単純に三角形をかくだけなので3次元計算は自分で行う必要があります。 とりあえず前に作ってみたラインで立方体を描くサンプルです。【KEVXK3J4】ファイル名「3DTEST__」
4そうだね
プレイ済み
返信[2]
親投稿
??? 258556
返事遅れてすいません。 サンプルプログラムありがとうございます!これを見ながら計算方法を理解してみます!
1そうだね
プレイ済み
返信[3]
親投稿
あきと SideBurnsM
もしかして単純に2Dの図形を回転したいだけだった。という事もありえますかね? スプライトを回転させるのとあまり代わりありませんがその時はコメントしてもらえれば。
1そうだね
プレイ済み
返信[4]
親投稿
??? 258556
いえ、違います。一度、仕組みがわかりやすいように奥行きのないものを作ろうとしてました。でもサンプルプログラムを見れば分かると思います。 わざわざ聞いてくださってありがとうございます!
2そうだね
プレイ済み
返信[5]
親投稿
??? 258556
すみません。1つ質問です。 側面に色をつけようと思い、プログラムを少しかえてみたのですが、Z値順に塗りつぶさなければおかしくなることに気付きました。そこで、『SORT』を使ってみたのですが、2次元配列であるため使えませんでした。 どうすれば、Z値順で描画できますか?
0そうだね
プレイ済み
返信[6]
親投稿
あきと SideBurnsM
側面に色をつけるにはまずは2点ではなく3点で管理する必要があります。私がアップしたプログラムには2点までしか入っていません。説明を簡単にするために「頂点」「線分」の先の「面」データを省きました。 自分で追加できた場合、3点のz座標の平均を計算して配列に格納することで数値が一つになるのでsort命令を使って面の描画順を決めることができます。
0そうだね
プレイ済み
返信[7]
親投稿
??? 258556
面データまでは作ることが出来、Z値だけソートもできました。このあと、Zと一緒に格納されていたXY値をZ値に合わせるにはどうすればいいですか?
0そうだね
プレイ済み
返信[8]
親投稿
あきと SideBurnsM
「奥行」が取得できればいいわけですからZで算出すればXYを合わせる必要は無いですよ。 拡大や回転計算を行って透視変換を行う直前のZ座標を使えば奥から描画できるはずです。
0そうだね
プレイ済み
返信[9]
親投稿
あきと SideBurnsM
ちなみにZの値で奥から描くプログラムは私も作ったのですがそれでも立方体の表示はおかしくなります。最終的に面の法線を算出して隠面消去を行う必要があります。
0そうだね
プレイ済み
返信[10]
親投稿
??? 258556
返信遅れました。すいません。 隠面消去…。何か難しいそうですね。とりあえず色々調べながらやってみます。 何度も返答ありがとうございました!
1そうだね
プレイ済み