Android 贝塞尔曲线的使用 操作

先看图
在线贝塞尔曲线获取坐标
Android 贝塞尔曲线的使用 操作_第1张图片
Paste_Image.png
根据期提供的 位置我们在android 上面看看是什么样子的

         float startX= 100;
         float startY=250;
         float endX=200;
         float endY=250;
         Path path= new Path();
         path.moveTo(startX, startY);
         path.cubicTo(350, 250, 100, 350, endX, endY);
         canvas.drawPath(path,getBrokenLinePaint());

Android 贝塞尔曲线的使用 操作_第2张图片
Paste_Image.png
问题来了 这个大小是固定的所以我们需要做一些处理

从上面我们可以看到 endx 与startx 的距离是100

  • 第一个控制点 350 250 如果按照比例换算的话
    X比例(350-100) / 100 =2.5
    Y比例 (endY-250) /100 = 0
  • 第二个控制点 100 350
    X比例(100-100) / 100 =0
    Y比例 (endY-350) /100 = -1
那么代码最终就变成了 我们来看看效果图 ,看起来大小没什么变化

         float startX= 100;
         float startY=250;
         float endX=200;
         float endY=250;
         float wt=endX-startX;
         float x1= (float) (startX+wt*2.5);
         float y1= startY+ wt*0;
         float x2=startX+ wt*0;
         float y2=startY - wt*-1;
         Path path= new Path();
         path.moveTo(startX, startY);
         path.cubicTo(x1, y1, x2, y2, endX, endY);
         canvas.drawPath(path,getBrokenLinePaint());


Android 贝塞尔曲线的使用 操作_第3张图片
Paste_Image.png
我们把endX修改成400看看 是否变形
Android 贝塞尔曲线的使用 操作_第4张图片
Paste_Image.png
Android 贝塞尔曲线的使用 操作_第5张图片
Paste_Image.png
看来是没什么问题的

你可能感兴趣的:(Android 贝塞尔曲线的使用 操作)