您的位置:首页 > 移动开发 > Android开发

Android Path中绘制的折线如何变得很平滑

2017-10-23 15:23 288 查看
多个点可以连成一个折线,如何将折线的拟合处变为曲线,使得整个线看上去更加平滑呢?

方法1:

Paint.setStrokeJoin(Paint.Join.ROUND)

这个方法可以将path中所有线段的Join方式设置为ROUND,实际效果就是拟合处变成了更加平滑的曲线;

方法2:

CornerPathEffect cornerPathEffect = new CornerPathEffect(200);

Paint.setPathEffect(cornerPathEffect);

此处的200就是平滑的度数;

方法3:

自己去实现,原理很简单,就是在两条线段相连的地方

原始做法:

moveTo(x1,y1);

lineTo(x2,y2);

lineTo(x3,y3);

此时就是两条线段相连;

平滑做法:

moveTo(x1,y1);

lineTo(x21,y21);(x21,y21)是(x1,y1)–(x2,y2)上的一个点,很接近(x2,y2);

quadTo(x31,y31);(x31,y31)是(x2,y2)–(x3,y3)上的一个点,很接近(x2,y2);

lineTo(x3,y3);

具体实现上还要考虑很多,例如两条线段的长度啊,形成的角度等等;

PS:推荐使用第一种,实现简单,而且不需要像方法2那样设置一个固定的角度(设置固定角度的效果不是很适用于所有角度的折线);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: