お世話になります。
以前、PictureBoxの透過に関して、下記アドバイスをいただき、
無事作成できたのですが、
今度は、PictureboxBの上にあるPictureboxA(透過率50%)の画像を
4点ある頂点を再指定して、変形させたいのですが・・・
http://oshiete.goo.ne.jp/qa/8662361.html
Dxlib OpenGL OpenCVなどを使用するサンプルは多数見かけるのですが、
標準の機能だけで、画像の変形はできますでしょうか。
【やりたいことのイメージ】
PictureboxBに町並みの画像
PictureboxAにビルやマンションの画像
PictureboxBに町並みの画像の上にPictureboxAの建物を半透明で表示して、
その建物の画像を移動とパースで背景の任意の位置に配置する。
※ 現在は上記で教わった手法にて、半透明と移動までできています。
※ rectangleだけだと平行四辺形までの変形しかできないようなので、
頂点指定もしくは、何らかの係数で値を変えると変形するのでも構いませんので、
変形させる方法がございましたら教えていただけないでしょうか。
よろしくお願いいたします。
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-I …
(ダウンロードには会員登録が必要ですが、このサイトは昔からある良いサイトなので登録して損はないです)
↑の簡単な使い方の例は以下にあります
http://stackoverflow.com/questions/5730236/persp …
* 他にも下の様なページもありましたが、これはサンプルがリンク切れ?になっていますね…
http://social.msdn.microsoft.com/Forums/vstudio/ …
* Direct 3D が使える環境では以下のような方法もあります
http://msdn.microsoft.com/en-us/library/windows/ …
(しかし C++/CLI の System.Windows.Forms 上で使うのは色々複雑だったような気が…。最近では XNA Framework が推奨されている様で、これを System.Windows.Forms 上で使う方法を調べれば良いのでしょうかね。)
akinomyoga様
回答ありがとうございます。
実は、akinomyogaさんに直接聞ければ、良い回答をいただけると思っていたんです。
でも、ここは、個人指定で質問できないので、
やきもきしてました。
今回の質問もakinomyogaさんの目に止まり、的確な回答をいただけ、
本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
C/C++→JAVAに変換するツール
-
エクセルVBAの自動変換機能?
-
C++からCへのソース変換について
-
エクセルのvbaで検索ボタンを作る
-
3のつく数字と3の倍数のみを表...
-
線対称の角度を求める
-
Mac 乗数の入力方法
-
c++でmatからvectorへの変換の...
-
非省略形式のIPv6アドレスを省...
-
VB.NETからJavaに変換するツー...
-
VB 6 を VS 2012に変換するには?
-
UTF8→ShiftJISに変換したいです!
-
中国語が文字コード変換で、一...
-
VC++2005で、CString型に16進...
-
VB6からVB2010への変換について
-
VC++2005 CStringをshortに変換
-
postgresqlのC++での文字エンコ...
-
なぜ通信には16進数文字列が使...
-
h8マイコンで AD変換ができ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
家電製品の電力周波数を変える機械
-
Mac 乗数の入力方法
-
分を時間に変換するプログラム
-
C++からCへのソース変換について
-
3のつく数字と3の倍数のみを表...
-
PHPで、日本語からアルファベッ...
-
なぜ通信には16進数文字列が使...
-
【EXCEL】カナ、ひらがなを英字...
-
エクセルVBAの自動変換機能?
-
VB6からVB2010への変換について
-
C/C++→JAVAに変換するツール
-
StrConvの使い方について教えて...
-
c++でmatからvectorへの変換の...
-
VB6で10進数を32進数に変換する...
-
10進数をBCDに変換する方法
-
UTF8→ShiftJISに変換したいです!
-
C#でのpngからbmpへの変換について
-
VB.NETをJavaに変換するツール...
-
マンセル⇔XYZ,RGB変換式或いは...
おすすめ情報