• ベストアンサー

マウスクリックと図形の関連付けについて

C++とDirectXを使って白地図の都道府県をマウスでクリックするとその県に色がつくプログラムを作りたいのですが、不定形の範囲とマウスクリックを関連付ける方法がわかりません。 長方形や丸ならクリックした座標と図形の当たり判定をとる方法で色を変えられたのですが、都道府県だと形が不定形なため、座標が計算で求められないのでできませんでした。 関連づけの方法を教えてください。 こんなかんじになるものです↓

noname#229950
noname#229950

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

DirectXとか関係ありませんが… 表示する画像と縦横が同じサイズの二次元配列なり用意します。 で、画像がクリックされた時に座標から配列を参照して結果を得ます。 二次元配列ではなく8Bitカラーのビットマップにする。 という手もあるでしょう。 # レイヤー機能があるペイントソフトなどでそういう画像データを作成すればよい。 # ペイントソフトでは24Bitカラーになるようであれば、8BitカラーのBMPに変換してくれるようなソフトもありますし。 これなら矩形とかの制限はありませんし。 # というか、某ゲームエンジンでやっていた方法ですしねぇ。(クリック時ではなくマウスカーソルが特定の領域に入っているかの判定用でしたけどね) # 当時はOPTPiXのお世話になりましたなぁ…。8Bitカラー用のパレットファイル用意してましたわ。(せいぜいクリック箇所判定は32個程度あれば充分だったのでパレットファイルもそんなモンでしたが) # メッセージウィンドウの各種ボタンとか、CGモードのサムネイル(斜めになっているものとかいろいろ)の上にマウスカーソルが乗ったか?とかの判定に使いまくり。

noname#229950
質問者

お礼

なるほど、座標の配列にある色のデータで判別するのですね。 その方法でやってみます。 回答ありがとうございました。

関連するQ&A

  • 選択ツールで描いた図形の大きさを指定したい

    Photoshop超初心者です。 選択ツールで描いた図形(長方形や楕円など)の大きさを指定したいのですが、方法が分かりません。 大きさを変えるだけなら、編集→変形→拡大・縮小でできるのですが、 何センチと、数値で指定したいんです。 長方形なら、縦・横、 円なら、半径、 それからその図形を配置する座標 を指定したいです。 よろしくお願いします。

  • Excel VBAでマウス移動&ダブルクリックを。

    EcxelでVBAマクロを作成してます。 Excelから、別のウインドウ(Excelではないソフトのウインドウ) をActiveにし、「決まった座標位置へマウスを動かし、そこで、 ダブルクリック」という動作をさせたいのですが、 「座標移動&ダブルクリック」がどうしてもできません。 (その後、コピーペーストをしてExcelに戻します。) ウインドウをActiveにしたり、コピペ等は、Sendkeyで、できたのですが、 どうしても座標移動&ダブルクリックだけができません。 (そのソフト特有で、どうしても、 ダブルクリックしなくてはならない箇所があるのです。) APIなどを使用するとできますでしょうか? Sendkeyでもダブルクリック&マウスの座標移動があるようなので、 試してみましたが、それは、うまくいきませんでした。 何か別の方法をご存知の方がいらっしゃれば、教えていただきたいと思います。 よろしくお願いします。

  • VisualC++で図形描画スクリプトを組みたい

    VisualC++2008でテキストなどから 数字・文字を読み込んで図形化するスクリプトを組みたいです たとえば  10-10-G-100 とかかれたときに 左から"-"を区切りとしてX始点座標-Y始点座標-色-長さ という風に解釈して図形を描画する 例の場合なら X10・Y10を始点にして緑色の右に長さ100ドットの決められた図形を描画する こんな感じでルール化された図形描画スクリプトを 組みたいと考えているのですが 図形描画の方法がわからず プログラムが組めずに困っています どなたか教えていただけないでしょうか?

  • ワードの図形・テキストボックスの色むら

    ワード2010をつかってチラシをつくっています。 図形を挿入して色つき長方形の部分をつくり、そのなかにテキストボックスや他の図形を挿入して文字を入力しているのですが、 重ねた部分の背景色(長方形の部分)が微妙に違う色に印刷されます。 後から挿入した図形は、図形の書式設定で「塗りつぶししなし」「線のいろなし」に設定しています。 色の違いは、遠くからではわからない程度ですが、 手にとってもらうチラシとしては、気になります。 原因や対処方法など、ご存じの方いらっしゃいましたらご教示ください。 よろしくお願いします。

  • C#(.net) ドロー系ソフト作成 図形選択方法

    C#(.net framework 4.0)で現在業務に使用しているソフトで、地図画像に対して、ごく初歩的な図形(直線や矢印、円、四角形、文字程度)を挿入する事が必要になりそうでして、ドローソフト系のようなプログラミングを行いたいと思っています。(Excel上での図形挿入の様なイメージ) Graphicsを使用して、線や塗りなどの描画はすぐにできると思うのですが、一度描画した線や四角を移動させたり大きさを調整したりするために、対象の図形をマウスでクリックして選択する方法がまるでうかびません。通常、この「図形を選択する」というのはどのように実現させているのでしょうか?思いつくものとしては、 図形をコントロールとして扱い、マウスイベントを直接受け取れるようにする? (そもそもコントロールの使い方として間違っているような気がしますし、パフォーマンスにかなりの悪影響がありそう…) 別に座標マップを作り、どの図形がどのドットに対応しているかを記録する? (線を引いた結果、どの座標がどの図形かをすべて計算する必要があると、かなりの計算とコード量になりそう…) くらいです。基本的な、もしくは一般的な方法や考え方がありましたら是非教えてください。ペイント系ならそれなりにネット上に情報はあるような気もするのですが、ドロー系に関する情報はなかなか少ないようで困っています。ドロー系ソフト作成時に参考になるコードや情報や本などありましたら、そちらも教えていただけると助かります。よろしくお願いいたします。 P.S. 質問投稿時にさんざん迷ったのですが、C#(.Net Framework)のカテゴリーって、こちらの C・C++ でよろしかったんでしょうかw

  • こんなことできるのでしょうか?

    分かりにくいタイトルですみません。突然の質問なんですけど、ホームページで日本地図を使い、マウスが地図上を通過するとマウスが触れている都道府県だけ色が付くようにしたいのです。フラッシュの知識とかはないので、簡単なテクニックでこなせれば…と思っております。もし、良い方法などありましたら教えて下さい。宜しくお願いします。

  • こんなことできますか???

    分かりにくいタイトルですみません。突然の質問なんですけど、ホームページで日本地図を使い、マウスが地図上を通過するとマウスが触れている都道府県だけ色が付くようにしたいのです。フラッシュの知識とかはないので、簡単なテクニックでこなせれば…と思っております。もし、良い方法などありましたら教えて下さい。宜しくお願いします。

  • Wordの図形サイズ調整について

    OS:Windows7(32bit)、ブラウザ:I・E9、エディタ:Word2010です。 Wordの図形サイズ調整についてお尋ねします。 文字列や画像に、挿入>>図形>>長方形を使い、文字列や画像の一部を囲うようにしました。 しかし、長方形の枠が思うように収まらず、広すぎたり狭すぎて文字などと重なり合ったりします。 矢印で幅や高さの調整を試みますが、うまくなりません。 長方形の上で右クリックしてもショートカットメニュー(例えば、サイズ調整とか)が出ないので どうしたら良いか悩んでいます。 サイズを調整する方法があったら、教えて下さい。

  • 2010ワード 図形(曲線)中の文字の色について

    パソコン操作に不慣れなもので、手こずっています。 受け取ったメールの文書の中の画像(地図です)を修正しています。 地図上にエリアを記したく、図形オートシェイプ?の曲線で円を挿入しました。 実線を点線に変えて、図形の塗りつぶしなしにして、その中に(1)と挿入するのですが、(1)の色を黒で表したいのですが、どうしても白色になってしまいます。 色を変える方法をご教示ください!よろしくお願いいたします。

  • マウスクリックした地点のテキストを読み込みたい

    マウスクリックした地点(X,Y座標)に表示されている文字を取得したいのですが、何か方法はありますでしょうか? 文字がないところや画像の場合は何も取得できなくても構いません。 特定のタグで囲まれている文字ではなく、BODY の中で特にタグに囲まれていないテキストを取得したいのです。 単なる文字が取得できるだけでも良いのですが、文章や段落も特定したいので、できれば、HTML中の何文字目なのかということがわかるとありがたいのですが…

専門家に質問してみよう