点の書き方 – プログラミング – Home

通知
すべてクリア

[解決済] 点の書き方


tenn
 tenn
(@tenn)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

こんにちは。VC++6.0を勉強し始めたところです。
現在文字を出力することをできるようになりました。
点(X,Y)を入力すると画面上にその点が表示できるようにしたいです。
どこにどのようなプログラムを書くとできますか?


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

適当な参考書を一冊お買い求めになり、お読みください。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> 現在文字を出力することをできるようになりました。

環境の説明ができないなら、とりあえずこのソースを載せてみて。


返信引用
tenn
 tenn
(@tenn)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

επιστημηさんに対する返答します。
本は買いました。
しかし書いていなかったので質問しました。
本に記載されているものは線を引く方法です。
点のみを表示するものが無く困っています

επιστημηさんとたいちうさんとの意見をプログラムで返答します。
現在私は

/////////////////////////////////////////////////////////////////////////////
// CVcgrphView クラスの描画

void CVcgrphView::OnDraw(CDC* pDC)
{
CVcgrphDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。

CPen penBlack(PS_SOLID,2,RGB(0,0,0));
CPen penRed(PS_SOLID,4,RGB(255,0,0));

CPen* oldPen=pDC->SelectObject(&penBlack);
pDC->MoveTo(10,10);
pDC->LineTo(300,10);
pDC->SelectObject(&penRed);
pDC->MoveTo(10,20);
pDC->LineTo(300,20);

pDC->TextOut(500,0,黒色の線);
pDC->TextOut(500,20,赤色の線);
}

のプログラムはできます。
星のように複数の点を描画できるプログラムを作りたいための第一歩として
一つの点の描画を書きたいと思っています。


返信引用
U
 U
(@U)
ゲスト
結合: 22年前
投稿: 6
 

CDCクラスに文字や線を描くメンバ関数があるんだから、点を描くメンバ関数もあるかも

と思いませんか?


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

MoveTo()とLineTo()に同じ座標を渡すのはどうですか?
点をうったことが無いし、他に方法を知らないだけなのですが

int nX = 100;
int nY = 100;
pDC->MoveTo(nX, nY);
pDC->LineTo(nX, nY);


返信引用
HEARTS
 HEARTS
(@HEARTS)
ゲスト
結合: 23年前
投稿: 21
 

CDC::1ピクセルの点でいいのならば
SetPixel(int x, int y, COLORREF crColor)
でしょうか。
SetPixelは描画した点がみにくくてイヤ!
というのならば
CDC::Ellipse()
である程度の大きさの円を
描くとかでしょうね。


返信引用
HEARTS
 HEARTS
(@HEARTS)
ゲスト
結合: 23年前
投稿: 21
 

申し訳ない

>CDC::1ピクセルの点でいいのならば
>SetPixel(int x, int y, COLORREF crColor)

1ピクセルの点でいいのならば
CDC::SetPixel(int x, int y, COLORREF crColor)


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

> 本は買いました。
> しかし書いていなかったので質問しました。

まず、Uさんの書いているように考えるべきです。
点の打ち方は?3角形の書き方は?菱形は?など、
全てのサンプルが載っている本はありません。
MSDNで調べましょう。

> MoveTo()とLineTo()に同じ座標を渡すのはどうですか?

LineTo()は終点の座標には線を引かないので、
この方法では何も表示されません。
お試しください。。。あれっ?
線の幅が2以上の場合には表示されるようですね


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

> LineTo()は終点の座標には線を引かないので、
> この方法では何も表示されません。
> お試しください。。。あれっ?
> 線の幅が2以上の場合には表示されるようですね
失礼しました
試したら点が描画されたので、始点に含まれるので描画されるのかな!?
なんて考えました

tennさん、私の発言は間違いですので無視してください


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/vcsample/html/_sample_mfc_scribble.asp
学習しましょう


返信引用
SunPac
 SunPac
(@SunPac)
ゲスト
結合: 22年前
投稿: 105
 

ちなみにSetPixelV()という関数があります。
内容は・・・MSDN参照という事で。


返信引用
tenn
 tenn
(@tenn)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

解決しました。

ku 2003/11/13(木) 14:21:18

MoveTo()とLineTo()に同じ座標を渡すのはどうですか?
点をうったことが無いし、他に方法を知らないだけなのですが

int nX = 100;
int nY = 100;
pDC->MoveTo(nX, nY);
pDC->LineTo(nX, nY);

このような考え方私は好きです^^。

色々ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました