绘图与动画

绘图与动画.

绘图最主要的还是原理:上下文环境..

几点疑问想要解决??
引擎和框架的区别,什么是引擎.
- 引擎是实现一些具体的功能的,如绘图引擎,是为(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阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低...
    ShanJiJi阅读 1,457评论 0 20
  • 西雅图猛虎军团】 2016年3月21日工作日志 今日工作流程安排: A、9:00—10:30 西雅图一楼办公室集合...
    司马文峰阅读 137评论 0 1
  • 感觉忙忙碌碌,却又一无所获。
    小白菜炒肉阅读 224评论 0 0
  • 27120190914564856692 34603486104543266482 133936072602491...
    一直前进阅读 245评论 0 1
  • Spark Mlib- Decision TreeQ:决策树是什么?A:决策树是模拟人类决策过程,将判断一件事情所...
    raincoffee阅读 351评论 0 0