• ベストアンサー

直線を描画するプログラム

初歩的ですみません。 マウスで始点と終点を決めて直線を書くプログラムを知っている方がおりましたら教えてください。 よろしくお願いします。

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

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

WinTKというのは良く分からないんで、MFCの方を…… とりあえずダイアログアプリケーションで説明すると、 1.  ダイアログベースのスケルトンを作ります 2.  xxxDlg.h に座標を保持るためメンバを追加します。 class CxxxDlg : public CDialog  {    CPoint m_ptBegin, m_ptEnd; 3. クラスウィザードで WM_LBUTTONUP, WM_RBUTTONUP を選択します。 4.  void CxxxDlg::OnLButtonUp(UINT nFlags, CPoint point)  {    // ここの point に左ボタンが離された座標が入ってますので保持しておきます(始点)    m_ptBegin = point;    CDialog::OnLButtonUp(nFlags, point);  } 5.  void CxxxDlg::OnRButtonUp(UINT nFlags, CPoint point)  {    // ここの point に右ボタンが離された座標が入ってますので保持しておきます(終点)    m_ptEnd = point;    // 再描画します。    InvalidateRect( NULL );    CDialog::OnRButtonUp(nFlags, point);  } 6.  CxxxDlg::OnPaint()関数の以下の部分を変更します。  else  {    CDialog::OnPaint();  }       ↓  else  {    CPaintDC dc( this );    dc.MoveTo( m_ptBegin );    dc.LineTo( m_ptEnd );    CDialog::OnPaint();  } と、大体こんな感じです。m_ptBegin, m_ptEndはコンストラクタで初期化してやっておいて ください。説明が大雑把なんでわかりにくかったら言ってくださいね。 ほな。

kashi818
質問者

お礼

ありがとうございました。 だいたいわかりました。 あとは自分でがんばってみます。

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

その他の回答 (1)

回答No.1

えーと、WinのVC++だって勝手に決め付けてざっと説明しますと、処理するメッセージは WM_LBUTTONDOWN で、始点終点を取って、デバイスコンテキストを作って,MoveToEx とか LineTo とかいう関数を使って実現できます。 プラットフォーム、開発環境などが分からないと答えようがないので、そのへんの補足をお願いします。

kashi818
質問者

補足

プラットフォームは以下のいずれかになります。 1、VisualC++によるWinTK C言語プラットフォーム 2、VisualC++とMFCによるC++言語プラットフォーム VisualC++は6.0を使用しています。 もう一つ補足ですが、マウスの左クリックで始点座標の指定、右クリックで終点座標の指定になるようにお願いします。 説明が足りなくて申し訳ありませんでした。

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

関連するQ&A

  • ペンタブレットで直線を描く方法

    質問させていただきます。 最近ペンタブレットを購入したのですが、 一定の太さの直線のひき方で悩んでいます。 任意の2点を結ぶ直線を描く場合、 マウスならば、始点をクリック+終点をshiftを押しながらクリックで 一定の太さの線画描けるのですが、 ペンタブだと始点が太く、終点が細くなってしまいます。 アプリ側の設定でしょうか? それともペンタブレット側なのでしょうか? いろいろと試しているのですが、うまくいきません。 ということで、マウスで描くときと同じように一定の太さで 線を描く方法をお教えください。 使用環境はMAC OSXにPhotoshop CS2、 タブレットはintuos3です。

  • PhotoShopで直線を引くには?

    Photoshop(Elements)で、始点と終点を指定して、直線と引く方法を教えてください。

  • GIMP2で直線の始点だけ色が濃くなるのを防ぎたい

    お世話になります。よろしくお願いします。 GIMP2を使っているのですが、直線の引き方で気になることがあります。 直線を引くには、まず始点を打ち、直線の終点でShiftキーを離すと思うのですが、 透明度の高い直線を引くと、始点の点と直線部分が重なり、始点部分だけ色が濃くなってしまいます。(添付画像) 何とか改善できる良い方法はないでしょうか? どなたかご存知の方がいましたら教えてください。 よろしくお願いします。

  • 直線の位置の指定の仕方 エクセル

    また質問します。 エクセルのグラフの上に直線を引いてあります。 この直線の始点終点を、それぞれ別の長さぶん移動させようとしています。 (直線は横には移動しません縦方向だけです) 直線は必ず右か左に傾いているので、始点終点のうち、高いほうはVBAのコードで [.top = 移動する値]で設定できますが、低い点の方はどうやって設定したらいいか わかりません。 どなたかアドバイスをお願いいたします。

  • 有限な曲線があったときに始点と終点を探すプログラム

    有限な曲線があったときに始点と終点を探すプログラムを作りたいのですが、 始点と終点を探索する手法はどのようなものがあるのでしょうか。 教えて頂ければ幸いです。よろしくお願いします。

  • PPT2007 直線が水平に引けません

     今晩は,質問させていただきます.どうぞよろしくお願いいたします.  環境:XP+PowerPoint2007 でございます。  オートシェイプから普通に直線を選択いたしまして、 水平線を引こうといたしますと何故か、終点が始点の真横に 引けない(その近辺のみ選択できない)、といった現象が 起こることがよくございます。  Altキー+ドラッグで微調整しようといたしましても何故か、 始点の高さ±3ピクセル程度の間には終点を置けません。 新しい別の線を用意するとそれは大丈夫なのですが、 先程の線「のみ」水平に引くことができません。  Officeは2000から全て購入して使用してきましたが、 このような現象は初めてでございます。  知り合い達からは「バグだ」と言われますが、 そういう物なのでございましょうか??  何か使い方や動作環境でのご指摘やその他可能性として 思いつかれること、また修正プログラムなど情報が ございましたら、是非ともアドバイスいただきたくお願いいたします。

  • 困り果てて,困ってます。。。

    フォーム上で,次のような操作をしたいのですが…(;;) (1)一度マウスをクリックすると,そこを始点として,そこからマウスのポインタへ直線が表示され,ポインタを動かすことで,その線も一緒に動く。 (2)二度目にマウスをクリックすることによって,そこが終点となり,始点から終点までが結線される。 ※一太郎の作図モードで直線を引くときのイメージです。 なお,エクセルVBAを基本に考えているのですが,VB6での対応も検討しています。 よろしくお願いします。

  • 直線を描くアルゴリズムが解りません(T_T)

    直線を描くアルゴリズムを教えて下さい。 直線の公式はわかるのですが、これからどうやって発展させていけばよいのか検討がつきません。 yの方が傾きが大きいのでyが常にインクリメントされるのはわかります。 xはどうやって判断するのでしょうか? (aは傾き、bは切片) y = ax + b 始点(3,3)終点(5,7) 7y-3y = 4 5x-3x = 2 ------------------------- a = 2 3 = 2*3 + b -> -3 = b 7 = 2*5 + b -> -3 = b --------------------------- b = -3

  • 線描画の座標計算で困っています。

     プログラムにて、仮想画面上に始点から終点までの線を引き、一部分を実画面に描画するプログラムを作っているのですが、機械の性能上の制約で処理が遅くなってしまいました。  仮想画面を使用せずに、計算だけで線を描画させようと思ったのですが、よい処理が思い浮かびませんでした。  そこで質問なのですが、始点から終点までの線のうち決められた範囲に入る部分だけを描画するための座標計算などの解説、もしくはサンプルがあれば教えて頂けないでしょうか?  よろしくお願いします。

  • VBAで線を描画

    ユーザフォーム上の2箇所のテキストボックスに始点、終点としてそれぞれ数字を入れるとワークシート上のあるセル(始点)からあるセル(終点)まで色をつける、もしくは線を引くということはできますでしょうか?すいませんがよろしくお願いいたします。

このQ&Aのポイント
  • MFC-J4540Nで紙詰まりが頻繁に発生して困っていませんか?紙送りの箇所を清掃しても解決しないこともありますよね。そこで、本記事ではMFC-J4540Nの紙詰まりトラブルの原因と対処方法をご紹介します。紙詰まりの解消に役立つ方法を試して、スムーズな印刷を実現しましょう。
  • 紙詰まりはMFC-J4540Nを使っている方によくあるトラブルです。特に、紙詰まりが頻繁に起こる場合はストレスを感じることもあるでしょう。紙送りの箇所を清掃したり、環境設定を変更してみたりすることで改善する場合もあります。本記事では、MFC-J4540Nでの紙詰まりの原因と解決策を紹介しますので、ぜひ参考にしてください。
  • MFC-J4540Nの紙詰まりトラブルに悩んでいる方必見!紙詰まりは印刷作業をストップさせ、時間のロスやストレスの原因になりますよね。紙送りの箇所を清掃するだけでなく、使用環境や設定にも問題がある場合があります。本記事では、MFC-J4540Nでの紙詰まりトラブルの原因と対策を解説します。効果的な対処方法を試して、スムーズな印刷を実現しましょう。
回答を見る

専門家に質問してみよう