画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

09 | 2017/10 | 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

【C++/CLI】線種、線幅、終端形状、接合形状の設定

線種の変更を行うには、Penプロパティの各種値を変更します。

図とプログラムを見比べて参照下さい。


線種、線幅変更

  void DrawVariousLines(PictureBox^ pic){
   //各種、線の描画
   if (pic->Width * pic->Height == 0) return;
   
   //ピクチャボックスと同じ大きさのBitmapを作成
   Bitmap^ bmp = gcnew Bitmap(pic->Width, pic->Height);
   
   pic->Image = bmp;
   
   //ピクチャボックスからGraphicsの作成
   Graphics^ g = Graphics::FromImage(pic->Image);

   //ピクチャボックスの背景色でクリアする。
   g->Clear(pic->BackColor);

   //Penの作成、線色:黒、線幅:2
   Pen^ p = gcnew Pen(Color::Black, 2);

   //
   // 線種
   //

   //破線
   p->DashStyle = System::Drawing::Drawing2D::DashStyle::Dash;
   g->DrawLine(p, 10, 20, pic->Width - 10, 20);
   //点線
   p->DashStyle = System::Drawing::Drawing2D::DashStyle::Dot;
   g->DrawLine(p, 10, 40, pic->Width - 10, 40);
   //1点鎖線
   p->DashStyle = System::Drawing::Drawing2D::DashStyle::DashDot;
   g->DrawLine(p, 10, 60, pic->Width - 10, 60);
   //2点鎖線
   p->DashStyle = System::Drawing::Drawing2D::DashStyle::DashDotDot;
   g->DrawLine(p, 10, 80, pic->Width - 10, 80);
   //実線
   p->DashStyle = System::Drawing::Drawing2D::DashStyle::Solid;
   g->DrawLine(p, 10, 80, pic->Width - 10, 80);

   //
   // ラインキャップ
   //

   //線幅:10
   p->Width = 10;

   //終端形状

   //丸-なし 
   p->StartCap = System::Drawing::Drawing2D::LineCap::Round;
   g->DrawLine(p, 10, 100, pic->Width - 10, 100);
   //丸-三角 
   p->EndCap = System::Drawing::Drawing2D::LineCap::Triangle;
   g->DrawLine(p, 10, 120, pic->Width - 10, 120);
   //なし-なし 
   p->StartCap = System::Drawing::Drawing2D::LineCap::Flat;
   p->EndCap   = System::Drawing::Drawing2D::LineCap::Flat;
   g->DrawLine(p, 10, 140, pic->Width - 10, 140);

   //アンカ
   
   //四角-なし 

   p->StartCap = System::Drawing::Drawing2D::LineCap::SquareAnchor;
   g->DrawLine(p, 10, 160, pic->Width - 10, 160);
   //四角-矢印 
   p->EndCap = System::Drawing::Drawing2D::LineCap::ArrowAnchor;
   g->DrawLine(p, 10, 180, pic->Width - 10, 180);
   //丸-矢印 
   p->StartCap = System::Drawing::Drawing2D::LineCap::RoundAnchor;
   g->DrawLine(p, 10, 200, pic->Width - 10, 200);
   //丸-菱形 
   p->EndCap = System::Drawing::Drawing2D::LineCap::DiamondAnchor;
   g->DrawLine(p, 10, 220, pic->Width - 10, 220);
   //なし-なし 
   p->StartCap = System::Drawing::Drawing2D::LineCap::NoAnchor;
   p->EndCap   = System::Drawing::Drawing2D::LineCap::NoAnchor;
   g->DrawLine(p, 10, 240, pic->Width - 10, 240);

   //
   // 結合形状
   //

   //線幅:20
   p->Width = 20;

   array<Point>^pt = gcnew array<Point>(3);

   //Miter
   p->LineJoin = System::Drawing::Drawing2D::LineJoin::Miter;
   pt[0] = Point(10,  260);
   pt[1] = Point(160, 260);
   pt[2] = Point(10,  310);   
   g->DrawLines(p, pt);

   pt[0] = Point(380, 260);
   pt[1] = Point(250, 260);
   pt[2] = Point(100, 310);   
   g->DrawLines(p, pt);

   //Bevel
   p->LineJoin = System::Drawing::Drawing2D::LineJoin::Bevel;
   pt[0] = Point(10,  340);
   pt[1] = Point(160, 340);
   pt[2] = Point(10,  400);   
   g->DrawLines(p, pt);

   pt[0] = Point(380, 340);
   pt[1] = Point(250, 340);
   pt[2] = Point(100, 400);   
   g->DrawLines(p, pt);

   //Round
   p->LineJoin = System::Drawing::Drawing2D::LineJoin::Round;
   pt[0] = Point(10,  430);
   pt[1] = Point(160, 430);
   pt[2] = Point(10,  490);   
   g->DrawLines(p, pt);

   pt[0] = Point(380, 430);
   pt[1] = Point(250, 430);
   pt[2] = Point(100, 490);   
   g->DrawLines(p, pt);

   //MiterClipped
   p->LineJoin = System::Drawing::Drawing2D::LineJoin::MiterClipped;
   pt[0] = Point(10,  520);
   pt[1] = Point(160, 520);
   pt[2] = Point(10,  580);   
   g->DrawLines(p, pt);

   pt[0] = Point(380, 520);
   pt[1] = Point(250, 520);
   pt[2] = Point(100, 580);   
   g->DrawLines(p, pt);

   //描画更新
   pic->Invalidate(); 

  }



【関連記事】
矢印の大きさ変更、任意形状の指定方法



Loading...
スポンサーリンク

この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://imagingsolution.blog107.fc2.com/tb.php/42-ebec49df
この記事にトラックバックする(FC2ブログユーザー)

現在の閲覧者数: / 合計