C言語で透視投影の図形(3次元)を作成しました。
プログラムは下のような感じになりました。
static struct {int f; double x,y,z;}a[]
...(略)
for(j=0; a[j].f!=-999; j++){//-999が来るまで描画
h=-a[j].x*sin(ay)/vp+a[j].z*cos(ay)/vp+n/vp+1;
px=(a[j].x*cos(ay)+a[j].z*sin(ay)+1)/h;
py=(a[j].y+m)/h;
if(a[j].f==-1)//-1が先頭にあるなら
pDC->MoveTo(px+200,-py+200);//描画の始点
else//そうでないなら
pDC->LineTo(px+200,-py+200);//線の終点
}
これに、わかっているx軸まわり・y軸まわりの回転変換マトリックスを掛け合わせた、統合変換マトリックスの式
x=x*cosθ-z*sinθ
y=x*sin^2θ+y*cosθ+z*sinθcosθ
z=x*sinθcosθ-y*sinθ+z*cos^2θ
を使用して図形を回転させたいのですが、プログラム中にはpDC->MoveTo(px+200,-py+200);のようにxとyしか出力がなく、z=をどう出力しようかと悩んでいます。また、回転を表示させるのに、
描画→回転させたx,y座標の算出→一度画面を白く塗りつぶす→描画
ということをfor文でやっていこうと思うのですが、画面がとてもちらついてしまいます。ちらつかない方法があれば教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 座標変換について 1 2022/08/04 16:42
- 数学 y軸周りの回転行列は ふたつとも間違いですか? 色々探しても cos 0 sin 0 1 0 -si 6 2023/04/24 00:01
- 数学 線形代数の行列についての問題がわからないです。 1 2022/07/18 17:46
- 物理学 物理の問題です。 1 2022/12/20 23:04
- 数学 写真の赤線部にについてですが、 どのように展開すれば「cos²5x-cos²3x」から 「sin²3 3 2023/02/13 13:38
- 数学 tan(z)=h(z)/(z-π/2)から h(z)=-(z-π/2)cos(z-π/2)/sin( 2 2022/08/01 23:44
- 数学 θ=π/2 のまわりでの f(θ)=sinθ/cosθのローラン展開に関して 以外の「」の解答を頂き 13 2022/11/11 09:45
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- 数学 回答者どもがなかなか答えられないようなので、考えてみました。 ∫[0,π/2]log(sinx)/( 4 2022/08/31 16:30
- 数学 次の関数を微分せよ y=sin^4 x cos^4 x という問題で自分は積の微分法で微分して y' 3 2023/05/17 20:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PCで「使用可能な場合はグラフ...
-
UpdateData( FALSE); による文...
-
NVIDIAのシェーダーキャッシュ
-
vc++のpictureboxにopenGLの画...
-
ブレゼンハムのアルゴリズムに...
-
CStaticコントロールの静的イメ...
-
GDI+について
-
MFC ビットマップ描画で残像が残る
-
画像の印刷について
-
[VB.net] DataGridViewの列ヘッ...
-
VB6,リストボックスの特定行の...
-
領域の塗りつぶし
-
TextBoxに文字を書いても表示さ...
-
SHGetFileInfoでアイコンが取得...
-
WM_PAINTとWM_MOVEで同じ事をし...
-
デスクトップに字を書く?
-
C++にて、塗りつぶされた円を描...
-
Windowのちらつき防止
-
OneNote 2010 文字と描画がずれる
-
C言語(dxlib)のDrawboxについ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6,リストボックスの特定行の...
-
[VB.net] DataGridViewの列ヘッ...
-
NVIDIAのシェーダーキャッシュ
-
MFCでOnPaintのタイミング
-
TextBoxに文字を書いても表示さ...
-
word
-
UpdateData( FALSE); による文...
-
VC++プログラムをつかったBMP画...
-
InvalidateRectの使い方について
-
OneNote 2010 文字と描画がずれる
-
StretchBlt関数について
-
C# ラバーバンドの描画を快適に...
-
エクセルでガンチャートを作成...
-
C++にて、塗りつぶされた円を描...
-
VBAにGDI+を参照させる方法
-
GDI+で高速な描画
-
MFC DrawText 背景色とフォント
-
FlexGridの一部のみ表示を更新...
-
MFCのタイマーのつかい方を教え...
-
Labelの文字をスクロールする際...
おすすめ情報