android贝塞尔 控制点,Android 贝塞尔曲线的使用 操作

先看图

d0975a0b6f47

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

d0975a0b6f47

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

d0975a0b6f47

Paste_Image.png

我们把endX修改成400看看 是否变形

d0975a0b6f47

Paste_Image.png

d0975a0b6f47

Paste_Image.png

看来是没什么问题的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值