
教えて下さい。
書籍やインターネットで調べているのですが、四角形の角を丸く(ワードの図形描画にある「角丸四角」です。)したり面取り(日曜大工で角を落とすのとおなじ)にはどのようにしたら良いのでしょうか?
多角形は参考するのがあったのですが、「角」の加工について調べたのですが見当たりませんでした。
【四角形描画】
//Graphicsオブジェクトの作成
Graphics g = PictureBox1.CreateGraphics();
//Penオブジェクトの作成(幅1の黒色)
//(この場合はPenを作成せずに、Pens.Blackを使っても良い)
Pen p = new Pen(Color.Black, 1);
//(10,20,100,80)の長方形を描く
g.DrawRectangle(p, 10, 20, 100, 80);
//リソースを開放する
p.Dispose();
g.Dispose();
【四角形の一箇所の角を丸くする】
→四角形の角の描画が残ってしまう。
//Graphicsオブジェクトの作成
Graphics g = PictureBox1.CreateGraphics();
//位置(10, 20)に100x80の四角を赤色で描く
g.DrawRectangle(Pens.Red, 10, 20, 100, 80);
//先に描いた四角に外接する楕円の一部
//(開始角度 0度、スイープ角度 90度)を黒で描く
g.DrawArc(Pens.Black, 10, 20, 100, 80, 0, 90);
//リソースを開放する
g.Dispose();
No.2ベストアンサー
- 回答日時:
>隅の扇形を描く前に、角を含む四角形で消去(背景色で描画)してはいかがでしょうか。
背景がビットマップとかで消したくない場合はNGですね。
パスを使って描画範囲を限定するのがいいかと。
WindowsAPIならRoundRect()で一発なんですけどね。
.NETの場合は、こんな感じで組み合わせればいいでしょう。
角の丸い四角形を描画します。
System.Drawing.Drawing2D.GraphicsPath.AddLines
System.Drawing.Pen.LineJoin = System.Drawing.Pen.LineJoin.Round
System.Drawing.Graphics.DrawPath
System.Drawing.Graphics.FillPath
参考URL:http://www.microsoft.com/japan/msdn/net/general/ …
遅くなりました。
アドバイスありがとうございます。
APIだったら容易だったのですか…
まずは、アドバイスとURLを元に試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
C#で角が丸いテキストボックス
その他(プログラミング・Web制作)
-
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
-
4
C#でTreeViewのCheckBoxのサイズ変更
C言語・C++・C#
-
5
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
6
C#のクラスで値渡しをする
その他(プログラミング・Web制作)
-
7
C# のテキストボックスデザインについて
その他(プログラミング・Web制作)
-
8
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
9
C# Controls.Addで動的に配置したコントロールのRemoveについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#を用いて描画する四角形の角...
-
ListBoxで改行したい
-
c言語 ちらつき
-
C++/CLIを用いて画像をクリップ...
-
ピクチャーボックスでの折線グ...
-
給紙トレイをダイアログを使わ...
-
PictureBoxのダブルバッファリ...
-
Word 描画オブジェクトを削除...
-
ビットマップに描画をしてピク...
-
VC++ MFCチェックボックスの色...
-
Excel VBA:コントロールボタン...
-
MFCでのコンボボックスについて
-
Visual C++ MaskedTextBoxの右...
-
scilabでのグラフ描画時の軸設定
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
VBA シートのボタン名を変更し...
-
実行時エラー 438になった時の...
-
ユーザーフォームを表示中にシ...
-
【C#/Java?】try-catchでcatch...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
C++プログラミングについて。
-
Excel VBA:コントロールボタン...
-
C#を用いて描画する四角形の角...
-
MFCでのコンボボックスについて
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
円の頂点の求め方を知りたいです。
-
[続編] pictureBoxそのものの...
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
文字のちらつきを抑えるには
-
画面に絵を出す方法
-
delphi 画面のちらつき
-
shapeを描画
-
VC;;6.0のMFCで線を簡単に引け...
-
vc++のペイント処理。
-
win32api複数のタイマーを同時...
-
c言語 ちらつき
-
Visual C++ MaskedTextBoxの右...
おすすめ情報