Android 贝塞尔曲线的使用 操作

先看图
在线贝塞尔曲线获取坐标
Paste_Image.png
根据期提供的 位置我们在android 上面看看是什么样子的

<code>

         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());

</code>

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
那么代码最终就变成了 我们来看看效果图 ,看起来大小没什么变化

<code>

         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());

</code>


Paste_Image.png
我们把endX修改成400看看 是否变形
Paste_Image.png
Paste_Image.png
看来是没什么问题的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容