繪圖與動畫

繪圖與動畫.

繪圖最主要的還是原理:上下文環境..

幾點疑問想要解決??
引擎和框架的區別,什么是引擎.
- 引擎是實現一些具體的功能的,如繪圖引擎,是為(CG)框架服務的.

什么是渲染??
計算機中的渲染是什么意思?什么原理?
- 就是把抽象的可視化的東西(物理模型或者數據模型),變成屏幕上可以顯示的二維圖像.

Bezier曲線?
拋物線么??

做游戲真的需要很好的算法基礎嗎??

引擎與框架

引擎是實現一些具體的功能的,如繪圖引擎,是為框架服務的.

Quartz 2D:二維繪圖引擎(純C語言的API,產生于Core Graphics簡稱CG框架)

Cosos 2D:2D游戲引擎.

Unity 3D:3D游戲引擎.

iOS繪圖中數據類型和函數一般都是以CG前綴開頭的.

繪圖的三個步驟:

  1. 獲取當前上下文(環境).
  2. 繪制路徑.
  3. 渲染(顯示內容)

注意:在Quarts 2D中畫線如果是相連的,就不要寫起點了.

pragma mark - 4.繪圖的方式

  1. 純C 語言 (上下文 直接添加路徑)
  2. 純C 語言 (創建路徑 再添加進上下文)
  3. C 語言 嵌套(OC 的路徑)
  4. C 語言 嵌套(C 的路徑 嵌入 OC 的路徑)
  5. 純OC
關鍵語法:
1. CGContextRef ctx = UIGraphicsGetCurrentContext(); //聯系上下文環境.

2. CGMutablePathRef path = CGPathCreateMutable(); //創建C路徑

//有Creat就要釋放:存在于CG,CF框架中.
 // CGPathRelease(<#CGPathRef _Nullable path#>) 
// CGImageRelease(<#CGImageRef _Nullable image#>)
// CFRelease(<#CFTypeRef cf#>)

3. UIBezierPath *pathOc = [UIBezierPath bezierPathWithCGPath:path]; //創建OC路徑對象

4. CGContextAddPath(ctx, path.CGPath); //添加路徑

5. 渲染,(path對象調用方法一種,C函數一種)

6. 起始點,movePoint,添加線addLine.都是CG開頭,或者對象調用.

pragma mark - 5.drawrect

關于drawRect的幾點疑問:

  1. 為什么繪圖的代碼都寫在drawRect方法中.
    • 首先這個方法非常特別,繪圖代碼只能寫在這里面才能由系統調用起作用.其他地方不生效.且只能第一次調用,如果你想要改變你所繪圖形,不能手動調用這個方法了(只能系統調用,可以通過手動[self setNeedDisplay]來調用系統的這個方法.
  2. drawRect方法中的(CGRect)rect參數的作用.
    • rect參數就是代表你的Bounds.你所繪制的范圍.
  3. 什么時候調用drawRect方法
    • 在加載View的時候.
  4. 如何重繪.為什么需要重繪.
    • 不重繪無法顯示,哪個方法只能生成一次圖像,無法改變
  5. 主動調用drawRect方法可以嗎?
    • 不可以只能系統調用,手動調用不成功,可以[self setNeedDisplay]間接調用.

繪圖練習

  • 三角形(trigon)
  • 矩形(rectangle)
  • 圓形(circle)
  • 橢圓(ellipse/oval)
  • 圓弧(arc)

stroke筆畫的意思,fill填充.

繪圖的樣式

誰渲染誰設置!!!!

  1. 設置線寬
  2. 線頭樣式(線的一頭,連接就變了).
  3. 拐角樣式(線連接的地方)
  4. 顏色
  5. 渲染方式
 //線寬 
 path.lineWidth = 20;
 //線頭LineCap
 /*
 kCGLineCapButt,低點尖角
 kCGLineCapRound,圓角
 kCGLineCapSquare高點尖角
 */
 path.lineCapStyle = kCGLineCapSquare;
 //拐角LineJoin
 /*
 kCGLineJoinMiter,//尖角
 kCGLineJoinRound,//圓角
 kCGLineJoinBevel,//切斜角
 */
 path.lineJoinStyle = kCGLineJoinMiter;
 //顏色
 [[UIColor redColor] setStroke];
 [[UIColor brownColor] setFill];
如果單獨只寫set,系統是根據系統模式自動判斷.

單詞意思:butt:斜,round:圓弧,square:直角的,miter:尖角,Bevel:切斜角,cap:帽子,join:連接.

渲染的方式

空心,實心.

9.0 基偶填充規則 【了解】

基數填充,偶數不填充
kCGPathEOFill

10.0 非零繞數填充規則 【了解】

當一個點被從左到右覆蓋過標記為1
從右到左覆蓋過標記為-1
當標記為0的時候不填充,其他則填充
簡單總結,這個規則與方向有關,與次數無關

餅狀圖

 UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:starAngle endAngle:endAngle clockwise:YES]; 
//for循環依次創建扇形.每次改變首尾位置.
//渲染

柱狀圖

同上只是創建path的方式發生改變,每次的x,y,H改變來改變矩形的形狀.

滑塊與餅狀圖

//將UISilder創建拖動事件的方法.sender.value來監聽改變的值,傳到餅狀圖中,注意此時因為你的數據是改變的,要調用實時改變繪圖的方法.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容

  • Core Graphics Framework是一套基于C的API框架,使用了Quartz作為繪圖引擎。它提供了低...
    ShanJiJi閱讀 1,547評論 0 20
  • 西雅圖猛虎軍團】 2016年3月21日工作日志 今日工作流程安排: A、9:00—10:30 西雅圖一樓辦公室集合...
    司馬文峰閱讀 153評論 0 1
  • 感覺忙忙碌碌,卻又一無所獲。
    小白菜炒肉閱讀 240評論 0 0
  • 27120190914564856692 34603486104543266482 133936072602491...
    一直前進閱讀 290評論 0 1
  • Spark Mlib- Decision TreeQ:決策樹是什么?A:決策樹是模擬人類決策過程,將判斷一件事情所...
    raincoffee閱讀 377評論 0 0