http://donbe.blog.163.com/blog/static/1380480212010423113440827/
想要学动画,那么就从绘图的基础学起吧
Application Kit framework (AppKit.framework)框架中包含了从原始图形,到复杂图形的一系列的类和方法
AppKit.framework是基于Quartz的
在Mac OS X中兼容很多种绘图技术,例如Quartz, OpenGL, Core Image, Core Video, Quartz Composer, PDF Kit, and QuickTime
应用最广泛的是例如Quartz 绘图技术
Quartz自动开启图形加速
画图模式
Quartz采用的是Painter’s Model,就是说 图画会一层一层的覆盖上去,后面画上去的会修改或者覆盖前面已经画好的
绘图环境
这里包含了两个东西
一是 画布,决定了你在什么地方进行绘画
二是 图形设置,决定颜色,大小,质量和方向
图形上下文(Graphics Context) (NSGraphicsContext)
图形上下文就是画图的目的,图形上下文封装了所有的在画布上的绘图信息,包括当前绘画属性.
Graphics Context大多用在window和在window上面的view, 每一个window或者view都有一个图形上下文.
大多图形上下文都在主线程上,当然为了更好的完成画图,也可以在辅助线程上.
大多数情况下,cocoa都会在你绘图前为你创建好和配置好图形上下文
图形状态(Graphics State)
NSGraphicsContext不仅仅绘图的目的,还有绘图的状态,包括线宽,笔锋颜色和填充颜色。
绘图状态保存在堆栈中,这样就可以实现撤销和重画
笔画和填充颜色设置使用NSColor类,大多数基于路径的参数设置使用NSBezierPath类
坐标系统(Coordinate System)
坐标系统采用浮点数,而不是整数
坐标转换(NSAffineTransform)
实现反转,自传,缩放
颜色
NSColor(color objects),NSColorSpace( color space objects)
基本图形元素
所有复杂的图形都是从一个个简单的图形开始的
NSPoint:用这个指定 一条线,一个矩形的开始,弧形的一个角
NSSize:指定矩形和椭圆的大小
NSRect:坐标原点在左下角
图形的形状(NSBezierPath)
包含了
直线
矩形
椭圆形和圆形
弧
贝塞尔三次曲线
参考
http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CocoaDrawingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40003290-CH201-SW1