点線で四角を太く描画するには?


かんとく  2014-04-08 08:45:26  No: 46209

お世話になっています。

Windows7,DelphiXE2です。

点線で四角を描画しようと思っています。

image1.Canvas.Pen.Style:=psDot;
image1.Canvas.Rectangle(10,10,100,100);

とすると、点線で四角が描画できます。

しかし、太い線で描画したいと思い、

image1.Canvas.Pen.size:=3;
image1.Canvas.Pen.Style:=psDot;
image1.Canvas.Rectangle(10,10,100,100);

とすると、点線ではなく、太い実線で描画されてしまいます。

点線で四角を太く描画するには、どうしたらよろしいでしょうか?

よろしくお願いします。


かんとく  2014-04-08 08:46:44  No: 46210

まちがえました。

image1.Canvas.Pen.size:=3;
ではなく、
image1.Canvas.Pen.Width:=3;
でした。
よろしくお願いします。


tor  2014-04-08 18:43:17  No: 46211

おすすめは自分で四角形を並べて点線を描くという方法です。
四角形を縁の内側に入れるのか中央に揃えるのか、中央だとしたら幅が偶数・奇数の時にそれぞれどう辻褄を合わせるか、
コーナーをどう綺麗に処理するか、一周回ってきた後の最後をどう繋げるか
等々考えながら自分好みにカスタマイズするのはなかなか楽しいです。

そんな手間かけていられないという方はサクッとヌミで。

ヲサヲサ゜コヲサフマヌツメユモネサ

ヲサヲサフノホナ゜ラノトヤネヲサスヲサウサヲサッッヲサ線の太さ
ヲサヲサフノホナ゜ミチヤヤナメホコヲサローョョアンヲサヲサトラマメトヲサスヲサィヲサッッヲサ点線のパターン定義
ヲサヲサヲサヲサアーャヲサヲサッッヲサ線の長さ
ヲサヲサヲサヲサアーヲサォヲサフノホナ゜ラノトヤネゥサヲサッッヲサ線と線の間の隙間(ォ線の太さで潰れる分)
ョョョ

ヲサヲサ゜ョモヲサコスヲサツモ゜モマフノトサ
ヲサヲサ゜ョテヲサコスヲサメサヲサッッヲサ点線の色
ヲサヲサヲサノアョテヲサ
ヲサヲサ
ヲサヲサヲサヲサミョネヲサコスヲサナテミィミモ゜ヌナマヘナヤメノテヲサヲサミモ゜ユモナメモヤルフナヲサヲサミモ゜ナホトテチミ゜モムユチメナャ
ヲサヲサヲサヲサヲサヲサフノホナ゜ラノトヤネャヲサ゜ャヲサフィフノホナ゜ミチヤヤナメホゥャヲサタフノホナ゜ミチヤヤナメホローンゥサ
ヲサヲサヲサヲサメィアーャヲサアーャヲサアーーャヲサアーーゥサ
ヲサヲササ
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーエッークィ火ゥ アイコイクコウオ  書込者ノト:ロ 」 ァ」ハノ

 ン

微訂正
ヲサヲサフノホナ゜ミチヤヤナメホコヲサローョョアンヲサヲサトラマメトヲサスヲサィヲサッッヲサ点線のパターン定義
ヲサヲサヲサヲサアーヲサュヲサフノホナ゜ラノトヤネャヲサヲサッッヲサ線の長さ
ヲサヲサヲサヲサアーヲサォヲサフノホナ゜ラノトヤネゥサヲサッッヲサ線と線の間の隙間
ヲサヲサヲサヲサッッヲサ線の太さで潰れる分を考慮に入れる

ついでにこの定義の仕方からわかる通り、この手法では点線の長さが幅より短い「横断歩道」タイプの線は引けません。
スススススススススススススススススススススススススススススススススススススススス
ニコ かんとく
トコ イーアエッーエッーケィ水ゥ ーーコーケコウエ シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ ァ。 。 ン
モコ 

ご教授、ありがとうございます。

ヌミの方で、できました。

点々の間隔まで指定できるのは、とてもいいと思いました。

本当に、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加