- ベストアンサー
直線を描画するプログラム
- みんなの回答 (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はコンストラクタで初期化してやっておいて ください。説明が大雑把なんでわかりにくかったら言ってくださいね。 ほな。
その他の回答 (1)
- NUNUNUNUNU
- ベストアンサー率55% (11/20)
えーと、WinのVC++だって勝手に決め付けてざっと説明しますと、処理するメッセージは WM_LBUTTONDOWN で、始点終点を取って、デバイスコンテキストを作って,MoveToEx とか LineTo とかいう関数を使って実現できます。 プラットフォーム、開発環境などが分からないと答えようがないので、そのへんの補足をお願いします。
補足
プラットフォームは以下のいずれかになります。 1、VisualC++によるWinTK C言語プラットフォーム 2、VisualC++とMFCによるC++言語プラットフォーム VisualC++は6.0を使用しています。 もう一つ補足ですが、マウスの左クリックで始点座標の指定、右クリックで終点座標の指定になるようにお願いします。 説明が足りなくて申し訳ありませんでした。
関連するQ&A
- ペンタブレットで直線を描く方法
質問させていただきます。 最近ペンタブレットを購入したのですが、 一定の太さの直線のひき方で悩んでいます。 任意の2点を結ぶ直線を描く場合、 マウスならば、始点をクリック+終点をshiftを押しながらクリックで 一定の太さの線画描けるのですが、 ペンタブだと始点が太く、終点が細くなってしまいます。 アプリ側の設定でしょうか? それともペンタブレット側なのでしょうか? いろいろと試しているのですが、うまくいきません。 ということで、マウスで描くときと同じように一定の太さで 線を描く方法をお教えください。 使用環境はMAC OSXにPhotoshop CS2、 タブレットはintuos3です。
- ベストアンサー
- その他(PCパーツ・周辺機器)
- GIMP2で直線の始点だけ色が濃くなるのを防ぎたい
お世話になります。よろしくお願いします。 GIMP2を使っているのですが、直線の引き方で気になることがあります。 直線を引くには、まず始点を打ち、直線の終点でShiftキーを離すと思うのですが、 透明度の高い直線を引くと、始点の点と直線部分が重なり、始点部分だけ色が濃くなってしまいます。(添付画像) 何とか改善できる良い方法はないでしょうか? どなたかご存知の方がいましたら教えてください。 よろしくお願いします。
- ベストアンサー
- 画像・動画・音楽編集
- 直線の位置の指定の仕方 エクセル
また質問します。 エクセルのグラフの上に直線を引いてあります。 この直線の始点終点を、それぞれ別の長さぶん移動させようとしています。 (直線は横には移動しません縦方向だけです) 直線は必ず右か左に傾いているので、始点終点のうち、高いほうはVBAのコードで [.top = 移動する値]で設定できますが、低い点の方はどうやって設定したらいいか わかりません。 どなたかアドバイスをお願いいたします。
- ベストアンサー
- その他MS Office製品
- 有限な曲線があったときに始点と終点を探すプログラム
有限な曲線があったときに始点と終点を探すプログラムを作りたいのですが、 始点と終点を探索する手法はどのようなものがあるのでしょうか。 教えて頂ければ幸いです。よろしくお願いします。
- ベストアンサー
- 数学・算数
- PPT2007 直線が水平に引けません
今晩は,質問させていただきます.どうぞよろしくお願いいたします. 環境:XP+PowerPoint2007 でございます。 オートシェイプから普通に直線を選択いたしまして、 水平線を引こうといたしますと何故か、終点が始点の真横に 引けない(その近辺のみ選択できない)、といった現象が 起こることがよくございます。 Altキー+ドラッグで微調整しようといたしましても何故か、 始点の高さ±3ピクセル程度の間には終点を置けません。 新しい別の線を用意するとそれは大丈夫なのですが、 先程の線「のみ」水平に引くことができません。 Officeは2000から全て購入して使用してきましたが、 このような現象は初めてでございます。 知り合い達からは「バグだ」と言われますが、 そういう物なのでございましょうか?? 何か使い方や動作環境でのご指摘やその他可能性として 思いつかれること、また修正プログラムなど情報が ございましたら、是非ともアドバイスいただきたくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 困り果てて,困ってます。。。
フォーム上で,次のような操作をしたいのですが…(;;) (1)一度マウスをクリックすると,そこを始点として,そこからマウスのポインタへ直線が表示され,ポインタを動かすことで,その線も一緒に動く。 (2)二度目にマウスをクリックすることによって,そこが終点となり,始点から終点までが結線される。 ※一太郎の作図モードで直線を引くときのイメージです。 なお,エクセルVBAを基本に考えているのですが,VB6での対応も検討しています。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- 直線を描くアルゴリズムが解りません(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
- 締切済み
- C・C++・C#
- 線描画の座標計算で困っています。
プログラムにて、仮想画面上に始点から終点までの線を引き、一部分を実画面に描画するプログラムを作っているのですが、機械の性能上の制約で処理が遅くなってしまいました。 仮想画面を使用せずに、計算だけで線を描画させようと思ったのですが、よい処理が思い浮かびませんでした。 そこで質問なのですが、始点から終点までの線のうち決められた範囲に入る部分だけを描画するための座標計算などの解説、もしくはサンプルがあれば教えて頂けないでしょうか? よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
お礼
ありがとうございました。 だいたいわかりました。 あとは自分でがんばってみます。