C GDI 程式設計基礎(二)

2022-04-05 18:50:57 字數 4994 閱讀 3038

pen類:繪製指定寬度和樣式的直線。使用dashstyle屬性繪製幾種虛線,可以使用各種填充樣式(包括純色和紋理)來填充pen繪製的直線,填充模式取決於畫筆或用作填充物件的紋理。

建立畫筆

//

用指定的顏色例項化乙隻畫筆的方法如下:

public

pen(color);

//用指定的畫刷例項化乙隻畫筆的方法如下:

public

pen(brush);

//用指定的畫刷和寬度例項化乙隻畫筆的方法如下:

public pen(brush , float

); //

用指定的顏色和寬度例項化乙隻畫筆的方法如下:

public pen(color, float

); //

例項化畫筆的語句格式如下:

pen pn=new

pen(color.blue);

//或者

pen pn=new pen(color.blue,100);

屬性成員:

名稱說明

alignment

獲取或設定畫筆的對齊方式

brush

獲取或者設定畫筆的屬性

color

獲取或者設定畫筆顏色

width

獲取或者設定畫筆的寬度

brush類(畫刷):是乙個抽象的基類,因此他不能被例項化,用它的派生類進行例項化乙個畫刷物件。

結構元件:

point類:表示乙個具體的點

size類:表示尺寸(畫素為單位)。size結構包含寬度和高度

rectangle結構:乙個建構函式的引數是x座標,y座標,寬度和高度。另外乙個構造函式引數是point和size。

//用指定的位置和大小初始化rectangle類的新例項。

public

retangle(

point

,size);

public

rectangle(

int,

int,

int,

int);

屬性成員:

名稱說明

bottom

底端座標

height

矩形高isempty

測試矩形寬和高是否為0

left

矩形左邊座標

location

矩形的位置

right

矩形右邊座標

size

矩形尺寸.

top矩形頂端座標

width

矩形寬x

矩形左上角頂點x座標

y矩形左上角頂點y座標

風格元件:

color類:(顏色及透明度),由透明度a 和三基色(rgb)所組成

屬性成員:

名稱說明

a獲取此color結構的alpha分量值,取值(0~255)。

b獲取此color結構的藍色分量值,取值(0~255)。

g獲取此color結構的綠色分量值,取值(0~255)。

r獲取此color結構的紅色分量值,取值(0~255)。

name

獲取此color結構的名稱,這將返回使用者定義的顏色的名稱或已知顏色的名稱(如果該顏色是從某個名稱建立的),對於自定義的顏色,將返回rgb值。

靜態方法成員:

名稱說明

fromargb

從四個8位argb分量(alpha、紅色、綠色和藍色)值建立color結構。

fromknowcolor

從指定的預定義顏色建立乙個color結構。

fromname

從預定義顏色的指定名稱建立乙個color結構。

例項:

//

定義乙個bitmap

bitmap mybitmap = new bitmap("

c:\\myimages\\myimg.bmp");

//定義乙個顏色變數把在指定位置所取得的畫素值存入顏色變數中

color c = new

color();

//獲取此bitmap中指定畫素的顏色

c = mybitmap.getpixel(10, 10

);

//將顏色值分解出單色分量值

intr, g, b;

r =c.r;

g =c.g;

b = c.b;

font類(字型風格):定義特定文字格式,包括字型,字型大小和字形屬性。

建立font例項://"

字型名"

為font的fontfamily的字串表示形式

public

font(

string

字型名,

float

字型大小,fontstyle 字形)

//字型大小和字型為可選項

public

font(

string

字型名,

float

字型大小)

屬性成員:

名稱說明

bold

是否為粗體。

fontfamily

字型成員。

height

字型高。

italic

是否為斜體。

name

字型名稱。

size

字型尺寸。

sizeinpoints

獲取此 font物件的字型大小,以磅為單位。

strikeout

是否有刪除線。

style

字型型別。

underline

是否有下劃線。

unit

字型尺寸單位。

重要引數:

graphicspaths(路徑):表示一系列連續的線條和曲線。

建立路徑:

public

graphicspath(system.drawing.

pointf

pts,

byte

types, system.drawing.drawing2d.fillmode fillmode)

//fillmode 填充方式 point 結構陣列 types 對應點的型別 列舉pathpointtype

pathpointtype列舉:

名稱說明

start

路徑起點

bazier

預設貝塞爾曲線

pathtypemark

遮蓋點dashmode

新增橢圓

pathmarker

路徑標記

closesubpath

子路徑終結點

bazier3

立體貝塞爾曲線

方法成員:

名稱說明

addarc

新增圓弧

addbezier

新增立方貝塞爾曲線

addclosedcurve

新增閉合曲線

addellipse

新增橢圓

addline

新增線段

addpath

新增路徑,bool引數表示是否將新增路徑的第乙個圖形作為當前路徑最後乙個圖形的子成員

addpie

新增扇形輪廓

addpolygon

新增多邊形

addrectangle

新增矩形

addstring

新增字串

clearmarkers

清除所有標誌

closeallfigures

閉合所有開放圖形

closefigure

閉合當前圖形

reverse

反轉陣列各點順序

reset

清空,並做好接收準備

startfigure

不閉合當前圖形就開始新的圖形

getbounds

獲得邊界(矩形)

getlastpoint

獲得最後乙個點

regions(組合圖形):由矩形和路徑組成

建立組合圖形:

public

region(system.drawing.drawing2d.

regiondata

rgndata)

public

region(system.drawing.drawing2d.

graphicspath

path)

public

region(system.drawing.

rectangle

rect)

public

region(system.drawing.

rectanglef

rect)

方法成員:

名稱說明

complement

更新,以包含與引數不相交的部分

exclude

更新,以僅包含內部以及與引數不想交的部分

union

更新為與指定引數的並集

xor更新為與指定引數的並集與交集的差集

translate

指定量偏移座標

intersect

更新為與指定引數的交集

isinfinite(g)

測試此region是否在指定g上具有無限內部

makeempty

清空makeinfinite

初始化為無限內部

C GDI 程式設計(一)

首先你要有點基本的幾何概念。例如大家常說的點動成線,線動成面,面動成體。兩點確定一條直線,不在同一直線上的三點確定乙個圓 或者平面 諸如此類。然後你要理解的是,對應於幾何概念中點,就是螢幕上的乙個畫素,因此,這種點和純粹幾何中的點還是有區別的。最後乙個就是座標了,和解析幾何不同,其座標系統如下 正方...

C GDI 程式設計(三)

2.矩形 先看看矩形結構 rectangle 儲存一組整數,共四個,表示乙個矩形的位置和大小,矩形由其寬度 高度和左上角定義,可用的建構函式如下 public rectangle point location,size size 用指定的位置和大小初始化 rectangle 類的新例項。public...

C GDI 基礎知識筆記

gdi 的命名空間 命名空間 說明system.drawing 包含與基本繪圖功能有關的大多數類 結構 列舉和委託 system.drawing.drawing2d 為大多數高階2d和向量繪圖操作提供了支援,包括消除鋸齒 幾何變形和圖形路徑 system.drawing.imaging 包括有助於處...