type
status
date
slug
summary
tags
category
password
icon
绘制的基本要素:
- 重写
onDraw()
- 使⽤ Canvas 来绘制
- 使⽤ Paint 来配置
- 坐标系(旋转的正向为顺时针)

- 尺⼨单位是像素,⽽不是 dp。转换⽅式:
Path 的⽅向以及封闭图形的内外判断:
- Winding: 如果⽅向相反的穿插次数相等则为外部,不等则为内部:
- 单圆:
- 双圆同向:
- 双圆不同向:



- Even Odd:不考虑⽅向。穿插奇数次则为内部,偶数次则为外部:
- 单圆:
- 双圆:


PathMeasure
把 Path 对象填⼊,⽤于对 Path 做针对性的计算(例如图形周⻓)。
仪表盘
- ⽤ drawArc() 绘制弧形
- 三⻆函数的计算:横向的位移是 cos,纵向的位移是 sin
PathDashPathEffect
- 加上 PathEffect 之后,就只绘制 effect,⽽不绘制原图形。所以需要弧线和刻度分别绘制,⼀共两次。
- dash 的⽅向
- 绘制 dash 的轨迹是这样的:
- ⽽由于 x 轴的正向是轨迹的正向(这是规定),所以实际上的物理模型是这样的:
- 那么,如果你要加上刻度,就应该这样设置:
- 然后,你的刻度就会沿着轨迹绘制:
- advance 计算





饼图
- ⽤ drawArc() 绘制扇形
- ⽤ Canvas.translate() 来移动扇形,并⽤ Canvas.save() 和 Canvas.restore() 来保存和恢复位置
- ⽤三⻆函数 cos 和 sin 来计算偏移

- 作者:shuouyang
- 链接:https://notion-tree.vercel.app/article/00746ac4-4c63-40cb-b1b0-03510ba396b3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。