掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Imageに描画する際のWidthに関して (ID:42395)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
torさんありがとうございます。 (0,0)-(4,4)場合3の部分に線が引かれる。 LineToと引く場所は違うのはわかりました。 あと、PenのWidthが奇数と偶数の場合について procedure TForm1.BitBtn1Click(Sender: TObject); begin with Image1.Canvas do begin Pen.Width := 11; ←ここを変更 Image1.Canvas.Rectangle(-5, -5, Image1.width+5,Image1.height+5 ); //MoveTo(Image1.width+5,0); //LineTo(Image1.width+5,Image1.Height); end; end; こうすると先ほどのPen.Width := 10のPen.Width := 11のときで右と下の描画が同じでした。※上と左はPen.Width=11の場合描画される この結果から以下試しました。 procedure TForm1.BitBtn1Click(Sender: TObject); begin with Image1.Canvas do begin Pen.Width := 11; Image1.Canvas.Rectangle(-5, -5, Image1.width-6,Image1.height-6 ); //MoveTo(Image1.width+5,0); //LineTo(Image1.width+5,Image1.Height); end; end; この場合 Pen.Width := 10;とすると左と下は1の大きさの空白ができます。 Pen.Width := 11;とすると空白なく埋まる。 □結論として 基本的に四角を描く場合は「Canvas.width-1」の部分に線の中心が引かれる。 ただ線が奇数の場合は線の中心より右側が1太くなる。 このことはWindowsのプログラミングの共通認識でしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.