繪畫 前進的火車 新浪部落格

2021-10-10 12:04:18 字數 3250 閱讀 9442

一、coregraphics

/獲取已經存在的繪圖上下文物件(嚴格上它只是個結構體),系統最終會將繪圖上下文中記錄的資料程式設計影象,為了影響最終繪製出來的結果,所以,就需要修改唯一的繪圖上下文物件中記錄的資料

cgcontextref

context = uigraphicsgetcurrentcontext();

cgcontextmovetopoint(context,40,

40);

cgcontextaddlinetopoint(context,40,

140);

cgcontextaddlinetopoint(context,

140,

40);

cgcontextaddlinetopoint(context,40,

40);

//設定描邊的顏色

cgcontextsetstrokecolorwithcolor(context,[[

uicolor redcolor] cgcolor]);

//設定描邊顏色為紅色【cgcolor相容與c和oc,這裡是一種轉化】

cgcontextsetfillcolorwithcolor(context, [[

uicolor greencolor]cgcolor]);

//設定填充顏色為綠色

//按照context中記錄的設定和路徑真的來繪製了,只能存在一條繪製語句

//cgcontextstrokepath(context);//該句為真正描邊語句

//cgcontextfillpath(context); //該句為真正填充語句

cgcontextdrawpath(context, kcgpathfillstroke);

//同時執行描邊和填充

二、uibezierpath 

uibezierpath *path = [uibezierpath bezierpath

];// 1. 建立uibezierpath例項

// 2. 勾勒圖形

[path movetopoint:cgpointmake(40,

40)];

[path addlinetopoint:cgpointmake(40,

140)];

[path addlinetopoint:cgpointmake(

140,

40)];

//[path closepath];//封閉圖形

// 3. 設定描邊或填充的顏色

[[uicolor redcolor] setstroke];

[[uicolor greencolor] setfill];

// 4.path的其他設定

path.linewidth = 20; // 設定線寬

path.

linecapstyle

= kcglinecapround;

// 設定線頭的樣式

kcglinecapbutt,//齊頭

kcglinecapround,//圓頭

kcglinecapsquare//方頭

path.

linejoinstyle

= kcglinejoinbevel;

// 設定線的連線處的樣式

kcglinejoinmiter,//尖角

kcglinejoinround,//圓角

kcglinejoinbevel//平角

// 5. 真的繪製(可以描邊 可以填充)//誰先執行誰在下面被壓著

[path stroke];

[path fill];

1)//勾勒圓弧路徑

[path addarcwithcenter:cgpointmake(

160,

240) radius:

100 startangle:

m_pi_2

*3 endangle:

m_pi

*2 clockwise:

yes];

2)//繪製圓角矩形

uibezierpath

*path2 = [

uibezierpath bezierpathwithroundedrect:cgrectmake(40,

200,

200,

100) cornerradius:

10];

3)//繪製橢圓

uibezierpath

*path3 = [

uibezierpath bezierpathwithovalinrect:cgrectmake(40,

300,

200,

200)];

4).勾勒曲線圖形

[path movetopoint:cgpointmake(

250,

40)];

//設定畫圖起點

[path addcurvetopoint:cgpointmake(40,

250)

controlpoint1:cgpointmake(40,

40)controlpoint2:cgpointmake(

250,

250)];

//設定曲線的終點及兩個控制點

二、創零時畫布

// 1.建立一張臨時的空白畫布// no代表透明  yes代表不透明 ,最後乙個的引數是比率是否放大,0表示正常不放大

uigraphicsbeginimagecontextwithoptions(cgsizemake(

120,

120),no,

0);// 2.建立圓形所屬的正方形

uibezierpath *path = [uibezierpath

bezierpathwithovalinrect:cgrectmake(0, 0, 120, 120)];//建立開乙個路徑物件

[path addclip];//

將路徑外設定為繪製無效區

uiimage *image = self

.imageview

.image; // 3.繪製

[image drawinrect:cgrectmake(0, 0, 120, 120)];

// 4.將臨時畫布的內容儲存成新的

uiimage

*newimage = uigraphicsgetimagefromcurrentimagecontext();

// 5.關閉臨時繪畫區間

uigraphicsendimagecontext();

udp 前進的火車 新浪部落格

udp通訊協議的特點 1.將資料極封裝為資料報,面向無連線。2.每個資料報大小限制在64k中 3.因為無連線,所以不可靠 4.因為不需要建立連線,所以速度快 5.udp 通訊是不分服務端與客戶端的,只分傳送端與接收端。比如 物管的對講機,遊戲.udp協議下的socket datagramsocket...

List Set 前進的火車 新浪部落格

collection 單列集合的根介面 list 如果實現了list介面的集合類,具備的特點 有序,可重複。arraylist arraylist 底層是維護了乙個object陣列實現 的,特點 查詢速度快,增刪慢。linkedlist linkedlist底層是使用了鍊錶資料結構實現的,特點 查詢...

Label Button 前進的火車 新浪部落格

1.label uilabel label uilabel alloc init 建立 self label label 關聯到當前屬性 label.text 顯示的內容 顯示的內容 cgfloat width self view.bounds.size.width 獲取螢幕的寬度 label.fr...