Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)

转载 2015年07月10日 14:14:03

简单的基础学习总结,是写给自己的哦,感觉对自己有用的可以看看,然则你可略过
1、moveTo

moveTo 不会进行绘制,只用于移动移动画笔。
结合以下方法进行使用。

2、lineTo

lineTo 用于进行直线绘制。

mPath.lineTo(300, 300);
canvas.drawPath(mPath, mPaint);

默认从坐标(0,0)开始绘制。如图:

图片描述

刚才我们不说了moveTo是用来移动画笔的吗?

mPath.moveTo(100, 100);
mPath.lineTo(300, 300);
canvas.drawPath(mPath, mPaint);

把画笔移动(100,100)处开始绘制,效果如图:

图片描述

3、quadTo

quadTo 用于绘制圆滑曲线,即贝塞尔曲线。

mPath.quadTo(x1, y1, x2, y2) (x1,y1) 为控制点,(x2,y2)为结束点。

同样地,我们还是得需要moveTo来协助控制。

mPath.moveTo(100, 500);
mPath.quadTo(300, 100, 600, 500);
canvas.drawPath(mPath, mPaint);

效果如图:


图片描述

4、cubicTo

cubicTo 同样是用来实现贝塞尔曲线的。

mPath.cubicTo(x1, y1, x2, y2, x3, y3) (x1,y1) 为控制点,(x2,y2)为控制点,(x3,y3) 为结束点。

那么,cubicTo 和 quadTo 有什么不一样呢?

官方是这么说的:

Same as cubicTo, but the coordinates are considered relative to the current point on this contour.

说白了,就是多了一个控制点而已。

然后,我们想绘制和上一个一样的曲线,应该怎么写呢?

mPath.moveTo(100, 500);
mPath.cubicTo(100, 500, 300, 100, 600, 500);

看看效果:

QQ%E5%9B%BE%E7%89%8720141013222234.jpg

一模一样!

如果我们不加 moveTo 呢?

则以(0,0)为起点,(100,500)和(300,100)为控制点绘制贝塞尔曲线:

2014-10-13%2FQQ%E5%9B%BE%E7%89%8720141013223204.jpg

5、arcTo

arcTo 用于绘制弧线(实际是截取圆或椭圆的一部分)。

mPath.arcTo(ovalRectF, startAngle, sweepAngle) , ovalRectF为椭圆的矩形,startAngle 为开始角度,sweepAngle 为结束角度。

mRectF = new RectF(10, 10, 600, 600);
mPath.arcTo(mRectF, 0, 90);
canvas.drawPath(mPath, mPaint);

由于new RectF(10, 10, 600, 600)为正方形,又截取 0 ~ 90 度 ,则所得曲线为四分之一圆的弧线。

效果如图:

2014-10-13%2FQQ%E5%9B%BE%E7%89%8720141013223920.jpg






android中path的arcTo方法的使用

该方法的声明为: void android.graphics.Path.arcTo(RectF oval, float startAngle, float sweepAngle); ...
  • whyrjj3
  • whyrjj3
  • 2012年09月04日 08:16
  • 11044

android Path moveTo lineTo实例详解

Why最近在写android画图经常用到这几个什么什么To,一开始还真不知道cubicTo这个方法,更不用说能不能分清楚它们了,所以特此来做个小笔记,记录下moveTo、lineTo、quadTo、c...
  • a394268045
  • a394268045
  • 2017年04月26日 11:54
  • 6271

Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)

 1、moveTo moveTo 不会进行绘制,只用于移动移动画笔。 结合以下方法进行使用。 2、lineTo lineTo 用于进行直线绘制。 [html...
  • rosebudchiu
  • rosebudchiu
  • 2017年03月04日 01:54
  • 118

Android Path的使用详解

尊重原创,转载请标明出处    http://blog.csdn.net/abcdef314159 这里来分析一下Android自定义控件中比较常用的另一个类Path/** * The Path c...
  • abcdef314159
  • abcdef314159
  • 2016年10月13日 13:36
  • 4874

Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)

转自:http://segmentfault.com/a/1190000000721127 1、Why 最近在写android画图经常用到这几个什么什么To,一开始还真不知道cubicTo这个...
  • wangjia55
  • wangjia55
  • 2015年03月30日 09:52
  • 1134

Android中Path类的lineTo方法和quadTo方法画线的区别

但我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式是不一样的;    1. Path--->quadTo(float x, f...
  • stevenhu_223
  • stevenhu_223
  • 2013年07月02日 23:42
  • 59252

Android中Path类的使用

用Path来绘制一些图形 Path是android中用来封装几何学路径的一个类,因为Path在图形绘制上占的比重还是相当大的。你可以用它来绘制各种样式的几何图形,做图表什么的都可...
  • wxx614817
  • wxx614817
  • 2016年04月15日 19:02
  • 2352

android moveTo、lineTo、quadTo、cubicTo、arcTo详解(转)

转载请注明出处:王亟亟的大牛之路原文出自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0906/3425.html 记录下m...
  • ddwhan0123
  • ddwhan0123
  • 2015年09月07日 10:49
  • 2147

安卓自定义View进阶 - 贝塞尔曲线

在上一篇文章Path之基本图形中我们了解了Path的基本使用方法,本次了解Path中非常非常非常重要的内容-贝塞尔曲线。...
  • u013831257
  • u013831257
  • 2016年04月29日 13:33
  • 10829

Path相关方法讲解(二)

通过 Path相关方法讲解(一),我们已经对 Path 有了一个很基本的了解,我们已经知道Path代表一条路径,而这条路径具体表现成什么样,我们自己可以自由发挥,随意构建,今天我们就一起来看看andr...
  • tianjian4592
  • tianjian4592
  • 2015年07月19日 21:46
  • 6623
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)
举报原因:
原因补充:

(最多只允许输入30个字)