PathMeasure

目录

API 

 总结:

简单函数: 

     PathMeasure(Path originalPath ,boolean forceClosed);

      getLength()

     isClosed() 

     nextContour()   

 重要函数(动画需要使用)

      getSegment(float startD,float stopD,Path dst,bolean startWithMoveTo)

     getPosTan(float distance, float[] pos ,float[] tan)

   getMatrix(float distance,Matrix matrix,int flags)

 


API 

 总结:

1.PathMeasure 字面理解是path测量 ,因此很容易联想到:和path 有关  。

简单函数: 

     PathMeasure(Path originalPath ,boolean forceClosed);

 originalPath :被操作path

 forceClosed:如果forceClosed=true,即时originalPath 没有闭合,按闭合处理(eg:获取长度 等) 注:forceClosed 取值不会对originalPath产生影响。

      getLength()

 计算path(当前曲线)的长度  (当 forceClosed=true,如果originalPath 没有闭合,等价于求它闭合时的长度)

     isClosed() 

 判断originalPath  是否闭合

     nextContour()   

 originalPath   可以由多条曲线构成,不论getLength() , getSegment()  还是其他函数 都只会针对其种第一条线段进行计算 。nexttContour() => 用户跳转到下一条曲线的函数 

 重要函数(动画需要使用)

      getSegment(float startD,float stopD,Path dst,bolean startWithMoveTo)

 通过距离起点(左上角)的开始距离(startD), 到距离起点的结束距离(stopD) ,按照路径生成的方向(CW/CCW)截取, 生成了新的dstPath。

startWithMoveTo :dstPath 有可能,在没操作(pathMeasure.getSegment(..))的时候已经有了path1, startWithMoveTo表示path1 的终点是否要和 dstPath 的起点连接起来(这样会把两段path 变成连续的)。

     getPosTan(float distance, float[] pos ,float[] tan)

  获取距离Path 起点长度为distance 的切点的坐标 (pos[0],pos[1]) 和正切值 tan[1]/tan[2]

  (已知 distance ,可以得到后面两个数组)

   getMatrix(float distance,Matrix matrix,int flags)

  用户获取路劲某一长度的位置 以及该位置的正切矩阵 matrix(用于动画的旋转 ,后面我会实战)。

   flags:pathMeasure.POSITION_MATRIX_FLAG:位置信息

            pathMeasure.TANGENT_MATRIX_FLAG:获取切边信息, 以上两个标准可以  “| ”  连接 ,一起使用

 

         

          

你可能感兴趣的:(Android)