• ベストアンサー

矢印表示に枠をつける

C++Builder5にて以下の事をしたいのですがどうしたらいいのかがまったくわからず困っております。したい事は以下の通りです。 (1)FormにTImageを設定 (2)TImage上にマウスにて2点を設定します。 (3)2点の終点に矢印を作成 (4)両方の矢印の終点から2点間の線と並行になるように線を引く。 (5)(4)で引いた線の終端同士を線で結ぶ。 (6)(1)で2点間の角度を調べる 作成される図形としては鉛筆型の5角形を作成したいのですがどうしたらいいのでしょうか。 よろしくお願い致します。

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

  • ベストアンサー
  • KoHal
  • ベストアンサー率60% (110/181)
回答No.1

質問の趣旨が理解できません。(1)から(6)まで何度も読んでみたんですが。 質問は他人が読んで明確に意味が分かるような表現でお願いします。 とりあえず、「鉛筆型の5角形を作成」という言葉だけを手がかりにサンプルを示します。勘違いしてるようならご勘弁。その際は補足で詳細を明示してください。 2点の座標と鉛筆の太さは決め打ちしてます。また先端(芯の出ている方)の角度は90度としてます。 マウス操作で2点の座標を取得する方法は開発者ガイドの第10章に詳しいサンプルがあるのでそちらを参照してください。 #include <math.h>  TPoint bottom( 10, 10 ), top( 100, 100 );  int width = 20; //鉛筆の太さ  double length = sqrt( //2点間の距離 これを鉛筆の長さにする   pow( top.x - bottom.x, 2 ) + pow( top.y - bottom.y, 2 )  );  if ( length <= width ) return; //鉛筆型が書けないときは処理を中断  //2点の座標から線分の傾き(ラジアン)を取得  double rad = atan2( top.y - bottom.y, top.x - bottom.x );  //x軸上に置いた場合の鉛筆の座標 先端から左回り  TPoint points[] = {   TPoint( length, 0 ),   TPoint( length - width, width/2 ),   TPoint( 0, width/2 ),   TPoint( 0, -width/2 ),   TPoint( length - width, -width/2 )  };  //座標の変換  for ( int n=0; n<5; ++n ) {   //座標を回転移動   points[n] = TPoint(    points[n].x*cos(rad) - points[n].y*sin(rad),    points[n].x*sin(rad) + points[n].y*cos(rad)   );   //bottomを始点とする位置に移動   points[n].x += bottom.x;   points[n].y += bottom.y;  } //描画  Image1->Canvas->Polygon( points, 4 ); 以上、とりあえず処理の流れを示すサンプルですから、かなり大雑把なもので精度は良くないです。 また、言うまでもないですが、これはあくまで私が思いついたサンプルコードです。 これ以外にももっとスマートなコードが考えられるでしょう。 ご自分で色々と研究してください。

Simanohito
質問者

補足

確かに読み返して見るとよくわからない手順になってました。 申し訳ございません。 再度手順を記載します。 手順1:マウスにて始点となる座標をクリック 手順2:マウスにて終点となる座標をクリック 手順3:終点になった座標から左右に30度開いた線を長さ20で線を引く (ここで矢印の<が作成される) 手順4:矢印を書いた左右それぞれの終点の座標と手順1、手順2で結んだ 線と平行に始点と垂直になる箇所まで線を引く 手順5:手順4で引かれた線の終点同士をせんで結ぶ (こうすると鉛筆型の5角形が出来ると考えております) 少しは理解して頂けたでしょうか。 説明が上手くなくご迷惑おかけします。 参考に質問にいたった経緯としては、 始点と終点をを指定したら5角形を作成出来るようにして欲しいと言われ、どうしたらいいのかわからずここでいろいろみて調べていたら 『QNo.57865で矢印を描画するには』という質問に haru-pさんがサンプルを作成しているプログラムを見て、これを参考にしたら言われた事が出来るのでは??と思ったのですが出来なかったので質問させて頂いた次第です。 参考にしたURLは以下の通りです。 http://kikitai.teacup.com/kotaeru.php3?q=57865

その他の回答 (2)

  • KoHal
  • ベストアンサー率60% (110/181)
回答No.3

>開発者ガイド C++Builder付属のマニュアルです。 Personal版にはついてなかったかな? その場合でもヘルプには収録されています。読みにくいですが。 ラバーバンドのあたりを参考にすると良いかと。

Simanohito
質問者

お礼

ご回答ありがとうございます。 C++Builder付属のマニュアルは紛失してしまったので ヘルプを参考にして勉強致します。

  • KoHal
  • ベストアンサー率60% (110/181)
回答No.2

最終的な目的は、鉛筆型5角形を描画することなのでしょうか? それとも、任意の5角形を描画することなのでしょうか? 鉛筆型5角形ならNo.1のサンプルコードを手直しすればすみます。 No.1補足の仕様であれば、回転前の5角形の各頂点の座標を手直しすればよいはずです。 ※マウスで2点の座標を取得する方法は開発者ガイドを参照するということで。 任意の5角形なら別の発想でコーディングする必要がありそうです。

Simanohito
質問者

補足

最終的な目的は鉛筆型の5角形が描画できるこですので、先日作成して頂いたサンプルソフトを手直ししてしたい事は出来るようになりました。 本当にありがとうございました。 ちなみに開発者ガイドってどこにあるのでしょうか? URLをご教示いただけると幸いです。

関連するQ&A

  • オートシェイプの矢印の先端が印刷されない

    エクセル2002を使っています。 オートシェイプの矢印を使って線を引いています。 終端の設定が矢印になっていて、ブックの中にたくさんの矢印をひいています。 印刷プレビューでは矢印の先端は見えるのですが、実際に印刷すると線に矢印の頭はなく、ただの線になっています。 このような現象をご存知の方はいらっしゃいますか?宜しくお願い致します。

  • エクセル2000で罫線が表示されない・・・

    エクセル2000の罫線、矢印について質問です。 ツールバーの図形描画で斜めの罫線や矢印を書いているのですが、突然罫線、矢印が表示されなくなりました。 原因を探していますがいまいち分かりません。 ドラッグして線をひくと、線は表示されませんが、始点と終点には小さな四角がでてきます。そこをダブルクリックするとオートシェイプの書式設定が表示され、線:色の部分には「線なし」と表示しています。その「線なし」が原因と思うのですが、変更できません。 詳しい方、ご教授下さい。

  • Illustratorで矢印を書く方法

    イラストレーターにて、ペンツール等で以下のような 直線+角の線を書き、それを矢印付きにしたいのですが 例えばスタイライズ→矢印では始点と終点しか矢印が かけませんが、間にも適当な感覚で矢印を挿入したい 場合はどのようにすればよいでしょうか? ──┐    └─── イラストレーターにて地図を書いており、進路を書く為 に使用したいのですが、間に矢印を入れられずに 困っております。 分かる方からすると、なんでも無いことだとは思いますが お知恵を拝借できますでしょうか。 よろしくお願いします。

  • 図形描画が表示しない

    エクセルで図形描画の矢印→を利用したところ、線が表示しません。右クリックで線を表示させてますが、毎回のように線が出ません。このファイルで別のシートを作成しても同様に表示しません。他のファイルは、→が表示されます。 何か設定ですか?

  • 図面を線か矢印に書き換えることをなんと呼びますか?

    記憶があいまいですし、素人です。 耐久性とかモーメント、角度を見る図面か何かの図を書き換えて線や矢印で表す事をなんと言いますか? 書き換えではなく、補足の説明をするための図かもしれません。 情報が少なすぎますが分かりますか?

  • OFFICE2003で図形の枠が表示できません

    WinXPでOFFICE2003を入れております。 数日前から、エクセルのオートシェイプ機能を使って四角や丸などの図形を画くと、図形の枠色(図形の線の色)が表示されなくなりました。 ただし、その図形をマウスで少し動かすと、きちんと枠色が表示されるようになります。オートシェイプの規定値では線の色はきちんと黒に設定されています。 関係があるかわかりませんが、上記の現象が出るようになるのと同じ頃から、エクセル内に貼ってある、オートシェイプ図形が画面に表示されるまで時間が掛かるようになりました。(以前はファイルを開くのとほぼ同時に全ての図形が表示されていたのに、今は同じファイルを開いても各図形が表示されるのに1秒ちかく掛かります。) ちなみに、上記の現象は特定のファイルに限定されず、どのエクセルファイル上で起こります。また、数日前からの現象と申しましたが、現象の前後に特定ソフトのインストールやアップデートなど、PC環境が変化するような事は行っていないつもりです。 できれば、図形枠がきちんと出て、図形の描画にも時間が掛からなかった状態に戻したいと思うのですが、何か方法がございましたらご教授いただければ幸いです。宜しくお願いします。 ~以下、マシンの性能です~ ■CPU:Celeron M 1396 Mhz ■合計物理メモリ: 512.00 MB

  • 【オートシェイプ】Wordで「ctrl+矢印」をしても微調整できない・・・

    Wordで組織図を作っています。 線をオートシェイプで作っているのですが、 微調節のため、〈ctrl+矢印)をしたら、思いっきり下に移動します。 図形の調節→グリッド→描画オブジェクトをグリッド線に合わせるを解除してもダメ。 再起動してもダメ。 新規作成でやってみてもダメ。 違う設定になってしまったのでしょうか?? 明日までに仕上げないといけない書類なので、すぐに回答いただけると助かります。

  • EXCEL 図形の挿入について

     Win 7、EXCEL 2010です、宜しくお願がいします。  挿入>図形、から矢印とか線、図形などを作成しますが、これを描くと回りに枠線が表示 されますが、これを表示させない設定はできるのでしょうか。    宜しくお願いします。

  • Windowに入っているペイントソフト

    ペイントソフトで図形を描こうとすると鉛筆が消えてしまう。 鉛筆をクリックすると鉛筆のアイコンが表示されますが、図形を描こうとすると鉛筆が消えて 図形を作成することができない。 以前は問題なくできましたが、突然、図形を描こうとすると鉛筆が消えて図形が作成できなくなりました。設定画面もないので、原因が解りません。対処方法が解りましたら教えてください。

  • EXCELで図形の縁どりがしたいのですが?

    EXCELで図形の縁どりがしたいのですが? 例えば矢印を書き、図形の書式設定にて、線の色を白に設定、線のスタイルを3.5ptにしました。で、この矢印に(黒などで)縁どりをしたいのですが、やりかたがわかりません。 どのようにしたらいいのですか?

専門家に質問してみよう