SVG 之pathData使用

前几天无意看到有关矢量图的相关知识。在练习尝试之后,写篇博客作为笔记。有不足之处还请各位大神提议。

这个是一个简单的小例子 一条直线
-

这是效果图
- 这里写图片描述

参数表示
M0代表移动点在x轴的位置为0
0表示移动点初始时 y轴的位置
L30表示一条在x轴上长度是30的直线
0表示该直线在y轴的位置
  • 画布的大小取决于 android:viewportHeight && android:viewportWidth 的值
    *

上述代码也可以写成 这样解释便是: 起始点M0 0,到目标点30 0 画一条直线
这里写图片描述

  • 接下来我们来介绍pathData中的 v & h* V 代表垂直 H 代表水平 举个栗子
    这里写图片描述

  • 在Android 中x轴的正方向是从左往右

  • y轴的正方向是从上网下

参数表示
M2 0代表起始点
h100表示x轴正方向位置移动100
v100表示y轴正方向位置移动100
h-100表示x轴负方向位置移动100
v-100表示y轴负方向位置移动100

效果图如下
这里写图片描述

  • 下面我们介绍a 操作符 通过a 我们可以制作圆形,椭圆形
    这里写图片描述
参数表示
a50表示该圆在x轴方向的半径
50表示该圆在y轴方向的半径
第一个0表示 x轴旋转角度
第二个0表示 y轴旋转角度
1这个1表示顺时针扫掠 0相反
100 0表示结束点

绿色方形为画布 中白色圆型极为pathData 绘制路径
这里写图片描述

  • 写到此有必要将各个命令列出来了

M = moveto 相当于 android Path 里的moveTo(),用于移动起始点
L = lineto 相当于 android Path 里的lineTo(),用于画线
H = horizontal lineto 用于画水平线
V =vertical lineto 用于画竖直线
C = curveto 相当于cubicTo(),三次贝塞尔曲线
S = smooth curveto 同样三次贝塞尔曲线,更平滑
Q = quadratic Belzier curve quadTo(),二次贝塞尔曲线
T = smooth quadratic Belzier curveto 同样二次贝塞尔曲线,更平滑
A = elliptical Arc 相当于arcTo(),用于画弧
Z = closepath 相当于closeTo(),关闭path

这里写图片描述

一个简单贝塞尔曲线图
这里写图片描述

注意:所有的命令都区分大小写,大写表示绝对位置,小写表示相对位置 ;三次贝塞尔曲线与二次贝塞尔曲线用法相同,只是多了一个操作点

写到此处就结束了,小弟不才 ,请多多指教

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值