• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++ 2005 画像の台形変形)

VC++ 2005 画像の台形変形

このQ&Aのポイント
  • PictureBoxを使用して画像の台形変形を行いたい。
  • 現在は半透明と移動までできており、平行四辺形までの変形が可能。
  • 頂点指定や係数の変更による変形方法を教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

先の TransparenetPictureBox の回答者の物です。質問者さんがお使いになっているのは、純粋な C++ ではなくて C++/CLI という物なのですが、これは C# と同じ枠組を使ってプログラムを書く環境になっています。特に Web 上では C++/CLI よりも C# による記事の方が充実しているので、何か分からない事があれば C# の記事を探してそれを C++/CLI に翻訳する (或いは C# の .dll にしてそれを C++/CLI から利用する) というのも有効な一つの手です。(既に御存知でしたら済みません。) 英語とか C# とかでも OK ですか? その様な変換は perspective transformation だとか perspective deformation だとかいうのですが、"C# perspective" などで検索してみると幾らか出てきます。 やはり、標準の機能ではその様な変換には対応していない様です。標準では線形変換だとか精々2次元のアフィン変換しかないので、矩形は常に平行四辺形になります。(台形の形にするには perspective 変換 (~3次元アフィン変換+投射) だとかしなければならないんだった様に思います。)すると、自分で書くか、何処か別の所から持ってくるしかありません。 * 例えば以下でサンプルコードをダウンロードできます http://www.codeproject.com/Articles/36145/Free-Image-Transformation (ダウンロードには会員登録が必要ですが、このサイトは昔からある良いサイトなので登録して損はないです) ↑の簡単な使い方の例は以下にあります http://stackoverflow.com/questions/5730236/perspective-image-transformation-with-tiling * 他にも下の様なページもありましたが、これはサンプルがリンク切れ?になっていますね… http://social.msdn.microsoft.com/Forums/vstudio/en-US/c0cff9c6-44b0-4d00-a35e-874bfa786d9d/c-draw-and-image-using-4-points?forum=csharpgeneral * Direct 3D が使える環境では以下のような方法もあります http://msdn.microsoft.com/en-us/library/windows/desktop/hh706310(v=vs.85).aspx (しかし C++/CLI の System.Windows.Forms 上で使うのは色々複雑だったような気が…。最近では XNA Framework が推奨されている様で、これを System.Windows.Forms 上で使う方法を調べれば良いのでしょうかね。)

usami33
質問者

お礼

akinomyoga様 回答ありがとうございます。 実は、akinomyogaさんに直接聞ければ、良い回答をいただけると思っていたんです。 でも、ここは、個人指定で質問できないので、 やきもきしてました。 今回の質問もakinomyogaさんの目に止まり、的確な回答をいただけ、 本当に助かりました。