最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入c# GDI+簡單繪圖的具體操作步驟(二)

 更新時(shí)間:2013年05月20日 15:26:28   作者:  
本篇文章是對(duì)GDI+簡單繪圖的繪圖知識(shí)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

在上一篇里已經(jīng)向大家介紹了如何使用GDI+繪制簡單的圖像,這一片繼續(xù)向大家介紹其它一些繪圖知識(shí).
1.首先我們來看下上一片中我們使用過的Pen.
Pen的屬性主要有: Color(顏色),DashCap(短劃線終點(diǎn)形狀),DashStyle(虛線樣式),EndCap(線尾形狀), StartCap(線頭形狀),Width(粗細(xì))等.
我們可以用Pen 來畫虛線,帶箭頭的直線等

復(fù)制代碼 代碼如下:

Pen  p = new  Pen(Color.Blue, 5);//設(shè)置筆的粗細(xì)為,顏色為藍(lán)色
Graphics  g = this.CreateGraphics();
//畫虛線
p.DashStyle = DashStyle.Dot;//定義虛線的樣式為點(diǎn)
g.DrawLine(p, 10, 10, 200, 10);
//自定義虛線
p.DashPattern = new  float[] { 2, 1 };//設(shè)置短劃線和空白部分的數(shù)組
g.DrawLine(p, 10, 20, 200, 20);
//畫箭頭,只對(duì)不封閉曲線有用
p.DashStyle = DashStyle.Solid;//恢復(fù)實(shí)線
p.EndCap = LineCap.ArrowAnchor;//定義線尾的樣式為箭頭
g.DrawLine(p, 10, 30, 200, 30);
g.Dispose();
p.Dispose();

以上代碼運(yùn)行結(jié)果:


2.接下來我們來看下Brush的使用
作用:我們可以用畫刷填充各種圖形形狀,如矩形、橢圓、扇形、多邊形和封閉路徑等,主要有幾種不同類型的畫刷:
•SolidBrush:畫刷最簡單的形式,用純色進(jìn)行繪制
•HatchBrush:類似于 SolidBrush,但是可以利用該類從大量預(yù)設(shè)的圖案中選擇繪制時(shí)要使用的圖案,而不是純色
•TextureBrush:使用紋理(如圖像)進(jìn)行繪制
•LinearGradientBrush:使用沿漸變混合的兩種顏色進(jìn)行繪制
•PathGradientBrush :基于編程者定義的唯一路徑,使用復(fù)雜的混合色漸變進(jìn)行繪制
我們這里只是簡單介紹使用其中的幾種:
復(fù)制代碼 代碼如下:

Graphics g = this.CreateGraphics();
Rectangle rect = new Rectangle(10, 10, 50, 50);//定義矩形,參數(shù)為起點(diǎn)橫縱坐標(biāo)以及其長和寬
//單色填充
SolidBrush b1 = new SolidBrush(Color.Blue);//定義單色畫刷         
g.FillRectangle(b1, rect);//填充這個(gè)矩形
//字符串
g.DrawString("字符串", new Font("宋體", 10), b1, new PointF(90, 10));
//用圖片填充
TextureBrush b2 = new TextureBrush(Image.FromFile(@"e:\picture\1.jpg"));
rect.Location = new Point(10, 70);//更改這個(gè)矩形的起點(diǎn)坐標(biāo)
rect.Width = 200;//更改這個(gè)矩形的寬來
rect.Height = 200;//更改這個(gè)矩形的高
g.FillRectangle(b2, rect);
//用漸變色填充
rect.Location = new Point(10, 290);
LinearGradientBrush b3 = new  LinearGradientBrush(rect, Color.Yellow , Color.Black , LinearGradientMode.Horizontal);
g.FillRectangle(b3, rect);

運(yùn)行效果圖:

3.坐標(biāo)軸變換
在winform中的坐標(biāo)軸和我們平時(shí)接觸的平面直角坐標(biāo)軸不同,winform中的坐標(biāo)軸方向完全相反:窗體的左上角為原點(diǎn)(0,0),水平向左則X增大,垂直下向則Y增大

接下來,我們來實(shí)際操作下,通過旋轉(zhuǎn)坐標(biāo)軸的方向來畫出不同角度的圖案,或通過更改坐標(biāo)原點(diǎn)的位置來平衡坐標(biāo)軸的位置.

復(fù)制代碼 代碼如下:

Graphics g = this.CreateGraphics();
//單色填充
//SolidBrush b1 = new SolidBrush(Color.Blue);//定義單色畫刷         
Pen p = new Pen(Color.Blue,1);
//轉(zhuǎn)變坐標(biāo)軸角度
for (int i = 0; i < 90; i++)
{
    g.RotateTransform(i);//每旋轉(zhuǎn)一度就畫一條線
    g.DrawLine(p, 0, 0, 100, 0);
    g.ResetTransform();//恢復(fù)坐標(biāo)軸坐標(biāo)
}
//平移坐標(biāo)軸
g.TranslateTransform(100, 100);
g.DrawLine(p, 0, 0, 100, 0);
g.ResetTransform();
//先平移到指定坐標(biāo),然后進(jìn)行度旋轉(zhuǎn)
g.TranslateTransform(100,200);
for (int i = 0; i < 8; i++)
{
g.RotateTransform(45);
g.DrawLine(p, 0, 0, 100, 0);
}
g.Dispose();

運(yùn)行效果圖:


4.最后我們來看下Graphics這個(gè)畫板上我們還可以畫什么
其實(shí)我們上面用到的都是在畫一些簡單的圖形,直線,矩形,扇形,圓孤等,我們還可以用它來繪制圖片,這可以用它的DrawImage方法.這里我不詳細(xì)講解,大家有興趣可以自己去MSDN了解下.我們后面會(huì)講到的截圖就會(huì)用到這個(gè)方法.

相關(guān)文章

  • C# 指針內(nèi)存控制Marshal內(nèi)存數(shù)據(jù)存儲(chǔ)原理分析

    C# 指針內(nèi)存控制Marshal內(nèi)存數(shù)據(jù)存儲(chǔ)原理分析

    這篇文章主要介紹了C# 指針 內(nèi)存控制 Marshal 內(nèi)存數(shù)據(jù)存儲(chǔ)原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解C#開發(fā)Android應(yīng)用程序的流程

    詳解C#開發(fā)Android應(yīng)用程序的流程

    在本篇文章里小編給大家分享了關(guān)于C#開發(fā)Android應(yīng)用程序的流程和相關(guān)技巧,需要的朋友們跟著學(xué)習(xí)下。
    2019-03-03
  • 使用c#開發(fā)公眾平臺(tái)自定義菜單功能

    使用c#開發(fā)公眾平臺(tái)自定義菜單功能

    微信公眾平臺(tái)服務(wù)號(hào)開放了自定義菜單API,本案例介紹C#開發(fā)微信公眾號(hào)自定義菜單功能。在此基礎(chǔ)上可以開發(fā)更完善的自定義菜單管理功能
    2014-01-01
  • C#實(shí)現(xiàn)簡易點(diǎn)餐功能

    C#實(shí)現(xiàn)簡易點(diǎn)餐功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡易點(diǎn)餐功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#設(shè)計(jì)模式之Singleton模式

    C#設(shè)計(jì)模式之Singleton模式

    這篇文章主要介紹了C#設(shè)計(jì)模式中的Singleton模式相關(guān)知識(shí),文中代碼非常詳細(xì),供大家理解學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 淺談C#數(shù)組(一)

    淺談C#數(shù)組(一)

    本篇文章小編要得大家介紹的是C#數(shù)組,數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它可以包含同一個(gè)類型的多個(gè)元素,如果需要使用同一類型的多個(gè)對(duì)象,可以使用數(shù)組和集合,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 深入理解C♯ 7.0中的Tuple特性

    深入理解C♯ 7.0中的Tuple特性

    這篇文章主要介紹了C#7中Tuple特性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友可以們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-03-03
  • C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題實(shí)例

    C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題實(shí)例

    這篇文章主要介紹了C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題,簡單說明了責(zé)任鏈模式的概念,并結(jié)合《西游記》中真假美猴王故事背景為實(shí)例分析了責(zé)任鏈模式的具體使用技巧,需要的朋友可以參考下
    2017-09-09
  • C#連接加密的Sqlite數(shù)據(jù)庫的方法

    C#連接加密的Sqlite數(shù)據(jù)庫的方法

    對(duì)數(shù)據(jù)加密分兩種,一種是對(duì)數(shù)據(jù)庫本身進(jìn)行加密,另一種是對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行加密,下面通過本文給大家介紹C#連接加密的Sqlite數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2017-08-08
  • C#實(shí)現(xiàn)Excel與DataTable的數(shù)據(jù)互轉(zhuǎn)的代碼示例

    C#實(shí)現(xiàn)Excel與DataTable的數(shù)據(jù)互轉(zhuǎn)的代碼示例

    在.NET框架中,使用C#進(jìn)行Excel數(shù)據(jù)與DataTable之間的轉(zhuǎn)換是數(shù)據(jù)分析、報(bào)表生成、數(shù)據(jù)遷移等操作中的常見需求,這一過程涉及到將Excel文件中的數(shù)據(jù)讀取并加載至DataTable中,本文將介紹如何通過C#語言實(shí)現(xiàn)Excel數(shù)據(jù)與DataTable之間的高效轉(zhuǎn)換,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

招远市| 常州市| 安化县| 公安县| 黄陵县| 电白县| 朝阳区| 双峰县| 海原县| 平舆县| 法库县| 上犹县| 锡林郭勒盟| 增城市| 夹江县| 柘城县| 麻阳| 东光县| 达尔| 白玉县| 灵山县| 府谷县| 道真| 景洪市| 临清市| 滁州市| 贺兰县| 沾益县| 永康市| 广饶县| 曲靖市| 神池县| 丹棱县| 灵寿县| 乌拉特后旗| 内丘县| 乡宁县| 亳州市| 云安县| 北碚区| 呈贡县|