DrawModiGraph()関数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tatelis

DrawModiGraph()関数について

#1

投稿記事 by tatelis » 16年前

DrawModiGraph() 関数について質問です。

対角線を描いた長方形の画像があるとします。
この画像を DrawModiGraph() 関数で台形に変形すると、
元の画像では直線だった対角線が曲線になってしまいます。(X→乂)
「直線を直線に」移すように変形するためにはどうすればよいのでしょうか?

tatelis

Re:DrawModiGraph()関数について

#2

投稿記事 by tatelis » 16年前

一応・・・ですが下記手順で自己解決しました。

1.2 のべき乗サイズのソフトウエアイメージハンドル H を新しく作成する。
2.元の画像 G(プログラムの仕様上サイズ固定、しかもかなり大きい)をメモリに読み込む。
3.H の各座標に対応する G の色を比の計算で求めて 1 ドットずつ塗っていく。
4.H を元にグラフィックハンドル G2 を作成する。
5.G2 を 3D ポリゴン 2 枚にし、奥行き Z を正しく設定することで台形に表示する。

元の画像が 1024*1024 をはるかに越えるほど大きく、また 2 のべき乗サイズでないため
このように面倒なことになってます^^;
もっとスマートな方法があればいいんですが・・・

Justy

Re:DrawModiGraph()関数について

#3

投稿記事 by Justy » 16年前

どちらが高速かは分かりませんが、2のn乗の空テクスチャを作って
それにGを縮小レンダリングすれば 4のG2を作るのに面倒な計算を
しなくても済むのではないでしょうか。

閉鎖

“C言語何でも質問掲示板” へ戻る