Modern X Tech. Chinese Translation Project
[[an_insider_s_guide_to_cairo]]
Last edit on
Mar 17, 2006
7:27 PM
by findsun
原文地址: http://cworth.org/~cworth/papers/cairo_ddc2005/
翻译人员:findsun
1. 什么是cairo
- 2D绘图函数库
- 显示和打印输出
- 多后端 (backend)
- 为加速而架构
2. 渲染模式
源 掩码(mask) 经过掩码over运算之后的源
3. 穿过甲虫的腹部
- 笔画绘制(stroking)
- 镶嵌(tessellation)
- 光栅化(rasterization)
- 合成(compositing)

4. 笔画绘制

5. 笔画绘制如此困难么?
- postscript 并非总是正确地渲染它
- inkspace 也不是总能正确地渲染它
6. 笔画如此困难么?
- postscript 并非总是正确地渲染它
- inkspace 也不是总能正确地渲染它
- 即使 cairo 也不能总是正确地处理它
7. 三次贝塞尔(Bezier)样条曲线
- 被广泛理解的图元(primitive)
- 许多令人喜爱的特性
- 容易分解(decompose)
- 其边界为控制点所组成的凸多边形外壳
- 但是无法准确地表示园弧
8. deCastlejau算法

9. 找到三个中心点

10. 找到新的两个中心点

最终的中心点位于样条曲线上

11. 两个*子*样条曲线显露出来

12. 让我们尝试笔画绘制


13. 现在简化画笔(pen)

14. 哦,漂亮的颜色

15. ...但是丑陋的拐角肿块

16. 首先近似样条

17. 有进步了么?

18. 清理一下

19. 然后加入画笔的形状

20. 镶嵌
- 鲁棒的实现绝非易事
- John Hobby提供了所有的答案
- 具有有限精度输出的实用分段交叉. 计算几何理论与应用, 13(4), 1999
- 初步的原型正在开发中
21. 夹角的情况

22. 不精确的交叉点

23. 容差的方

24. 正确的结果

25. 光栅化/合成
- 最初代码的编写只用了不到一天时间
- 现在得到了越来越多的关注
- 感谢Soren, google等