• ベストアンサー

矢印を描画するには

任意の座標間に矢印つきの直線を描画したいのですが、可能でしょうか? イメージとしては、WordやExcel、PowerPointの矢印描画あたりです。

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

  • ベストアンサー
  • haru-p
  • ベストアンサー率28% (34/119)
回答No.4

こんなコードをでっちあげてみました。 いかがですか。 // 終点に ">" を付ける // nStartXPos, nStartYPos … 始点 // nEndXPos, nEndYPos … 終点 #include <math.h> void C???View::Arrow(CDC * pDC, int nStartXPos, int nStartYPos, int nEndXPos, int nEndYPos) { int i; int nX, nY; double dbAng; #define LENGTH 10 // 矢印の先の長さ #define ANGLE (3.1415/180.0*30.0) // 矢印の開く角度 … 現在30度 dbAng = 3.1415 + atan2(nEndYPos-nStartYPos, nEndXPos-nStartXPos); for (i=-1; (i<=1); i+=2) { nX = (int)(cos(dbAng+ANGLE*i) * LENGTH) + nEndXPos; nY = (int)(sin(dbAng+ANGLE*i) * LENGTH) + nEndYPos; pDC->MoveTo(nEndXPos, nEndYPos); pDC->LineTo(nX, nY); } }

puntoabart
質問者

お礼

わざわざコードを書いていただき、ありがとうございます!! さっそく試してみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • haru-p
  • ベストアンサー率28% (34/119)
回答No.3

MoveTo と LineTo で書く線は Word のような矢印が 付きませんから、やっぱり自力で矢印を書くしかないかなー。 「端点キャップ」に関しては下記の URL を見ると分かりやすいと思います。

参考URL:
http://www.topposystem.co.jp/DL/Win32API/GUI/%E3%83%9A%E3%83%B3%E3%81%AE%E6%A6%82%E8%A6%81.html
puntoabart
質問者

お礼

ありがとうございます。 端点キャップについても分かりやすい説明がありました。 結局、端点キャップでは問題は解決しないんですね、残念。

全文を見る
すると、全ての回答が全文表示されます。
  • haru-p
  • ベストアンサー率28% (34/119)
回答No.2

Windows & Visual C++ が前提ですと(書いてありませんが^^:)、 CDC に MoveTo と LineTo で描画出来ますよ。 もう少し puntoabart さんからの情報があると良いですね。 例えば、プラットホームと開発環境(IDE)の種類、それから どこに描画するかの情報です。

puntoabart
質問者

補足

Windows 98とVisual C++6.0で作ってます。 (プログラム関連の質問で環境も書いてないのは問題ですね…。すいません) MoveToとLineToで直線は引けるのは分かるのですが、 その直線の両端の形状を変更することはできるのでしょうか? 私がしたいのはそれなのです。 リファレンスを見ていると、CPenの引数に"PS_ENDCAP_~"というものがありました。 解説には「端点キャップ」と書いてありました。 これは私のしたいことに関係があるのでしょうか? あ、ちなみに直線を描画するのはウィンドウ内です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

すいません。質問の意味がよくわかりません。 Word2000に図形描写があります。この中に矢印を描写出来る物があります。 これで矢印がかけます。 この矢印はある程度のグリットの点に乗ります。このグリット間(点と点の間)をもっと細かく任意に書きたいのでしょうか。 またはマクロで任意に矢印を書きたいという事でしょうか。 また「イメージとしては、WordやExcel、PowerPointの矢印描画あたりです。」のところがよく理解できません。どうもすいません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの描画を続けて使うには?

    エクセルの描画ツールを続けて使うにはどうしたら良いのでしょうか? 例えば直線を描く場合、マウスのポインターをオートシェイプに持っていき直線を選びます(又はAlt-uと矢印キーで)。 マウスのポインターが「+」になります。 そして直線をマウスで引きます。 続けて引こうとすると、またマウスで同じ操作をしてポインターを「+」にしないと直線が引けません。 簡単に続けて同じ描画ツールを使う方法はないでしょうか? またショートカットキー等で描画を選択した状態(ポインターが「+」)にできないでしょうか? Officeは2000と2003を使っています。 よろしくお願い申し上げます。

  • Word2007で、コネクタ矢印じゃなく普通の矢印を書きたい

    Word2007を使用しています。 図形の上に直線を描画しようと思ったのですが、どうやらコネクタ機能が自動的にはたらくようで、勝手に別の図形にくっついてしまい、四角形の上に矢印を引くことができません。 どうすれば、コネクタ矢印じゃなくて、普通の矢印を描くことができるのでしょうか? 参考になるURLがあれば、合わせて教えてもらえるとうれしいです。 よろしくお願いします。

  • 図形描画の四角形が表示

    office2003 Excelで 図形描画で四角形が表示がなくなってしまいました。 楕円、矢印、直線はあります。 以前まであった四角形を表示するにはどうすればいいでしょうか?

  • WORDで「描画をここに作成します」を表示しないようにするには

    Microsoft Office Word 2003を使用しています。 図形(直線、矢印、四角、楕円 など)を描こうとすると、「描画をここに作成します」というのが表示されます。この「描画をここに作成します」を表示させない様にするには、どう設定すればよろしいですか?

  • (^_^;) ワードのオートシェイプで、曲線の先に矢印をつける方法、ありますか?

     Word2000を使ってます。図形描画のオートシェイプで、直線の先(端っこ)に矢印をつけられるようになってますが、曲線の先(端っこ)に矢印をつけることはできませんか?  矢印を入れるなら、手書きがやむをえないんでしょうか?  曲線と、矢印つき直線を合成しようとしても、なかなかうまくいきません。

  • [Word2002] 「描画をここに作成します」って?

    Wordで文書内に直線や矢印を引こうとすると、 「描画をここに作成します」という大きな枠が表示されます。 以前は文書内へダイレクトに引けたのですが、 最近になり枠が表示されるようになってしまいました。 枠を表示されないようにするにはどうしたら良いのでしょうか?

  • Excel2003の「図形描画>オブジェク」の矢印

     Excelの初心者です、宜しくお願いします。  Windows XP Excel 2003 では、「図形描画>オブジェクトの選択」という矢印がありますが、 これと同じ機能(「オブジェクトの選択」という矢印)はExcel 2010にも有るのでしょうか。  あるとすればどこの設定をどのようにしてやればいいのでしょうか、宜しくお願いします。

  • VB6でベクター矢印描画

    VB6で日曜プログラミングをしているものです。 パワーポイントのオートシェイプの線のような具合で 矢印をPictureBox内で扱いたいのですが、そのようなコントロールなど ご存知の方いらっしゃいましたらご教示お願いできませんでしょうか? イメージとしては、PicutreBox内でクリックすると矢印描画開始、 もう一回クリックして確定。 矢印の上でクリックすると、矢印にフォーカスが当たる(頭と尻尾に○が表示?)。 確定後はドラッグアンドドロップが可能で矢印の先端をドラッグアンドドロップ することで、矢印の長さ、傾きの調整が可能。 みたいなものをイメージしています(まんまパワポのオートシェイプ) お力お貸しください。

  • aviutlで矢印を合成したい

    aviutlの動画編集で、始点と終点を決めて任意の領域に矢印を合成できるような方法を探しています。、 現状では拡張描画で四角形を書き、それを細長くしてサイズ変更・回転などをして配置しています。 矢印ではなくただの直線になってしまう上に、 複数の矢印を書きたいときにそれぞれのレイヤーを作成するのがかなり面倒に思えます。 ご存知の方いらっしゃいましたらご回答お待ちしております。

  • エクセルの図形描画

    図形描画のところで、直線と矢印(/、→)がアクティブに なっていないのですが・・・ どうすれば、使用できますか?教えて下さい。

このQ&Aのポイント
  • 印刷結果が全体にあいあくなるので、チェックシートで確認した結果青色が全く印刷されません。何度クリーニングしても変わりません!インクを新品の交換しても変わりません。
  • パソコンもしくはスマートフォンのOSはWindowsです。接続はUSBケーブルです。関連するソフト・アプリはありません。電話回線の種類はIP電話です。
  • ブラザー製品についての質問です。青色が全く印刷されないトラブルが発生しています。
回答を見る

専門家に質問してみよう