博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三次贝塞尔曲线画圆的方法。
阅读量:6721 次
发布时间:2019-06-25

本文共 702 字,大约阅读时间需要 2 分钟。

上一篇说的仿58同城loadingview的项目。中有一个利用贝塞尔曲线进行绘制圆的步骤,这个贝塞尔曲线理论挺复杂,特此单独说一下所知的和能用到的。

比方上一个loadingView的项目中。要用到Path.cubic()来使用贝塞尔曲线画一个圆,那么首先要了解的是
Path.cubic()方法的定义:

void cubicTo(float x1,float y1,float x2,float y2,float x3,float y3)Add a cubic bezier from the last point,approaching control points(x1,y1)and(x2,y2),and ending at (x3,y3)

什么意思呢。就是从我们的最后一个点出发以接近(x1,y1)(x2,y2)这两个点的方向走最后结束在(x3,y3)点。

什么叫接近呢?比方y = 1/x^3 这个函数的轨迹当x趋近于0时。轨迹无限趋近于Y轴值趋于无限大。

借用一张图片
当曲线从0点出发以趋近1点的方向前进终结于4点时就会呈现这样一个轨迹。

所以当想以三次方程贝塞尔曲线绘制一个圆时。项目中的方法是绘制4个1/4圆,每次用三次贝塞尔绘制1/4圆须要四个点。
这张图中的(0,0)是我们的起始点(1,1)是终点 这两个点都是圆上的能够知道坐标。所以要算出(x1,0)(1,y1)这两个点的坐标。

这就是magicNumber的由来。

我们将这个圆的圆心与(x1,0)(0,0)连线。两条线的夹角为20°,由此可算出x1的坐标。

同理y1,这个坐标值为magicNumber。

四个点坐标算出来就能够画圆了。

转载地址:http://gwjmo.baihongyu.com/

你可能感兴趣的文章
Java基础——类和对象
查看>>
继承与派生
查看>>
WinServer2008 下IIS安装
查看>>
如何给Docker hub用户上传头像
查看>>
Docker入门系列之一:在一个Docker容器里运行指定的web应用
查看>>
健康链(HDC):基础公链为经,医疗引擎为纬
查看>>
中国《南方画刊》第2期
查看>>
以太坊智能合约示例
查看>>
区块链是什么?彻底理解只要150行java代码!
查看>>
使用MaxCompute Java SDK 执行任务卡住了,怎么办?
查看>>
《鹿鼎记》的第一遍读后感作文3600字
查看>>
66.添加自定义监控项目 配置邮件告警与测试及处理问题
查看>>
阿里云应用高可用服务公测发布
查看>>
芯片、半导体和集成电路之间的区别是什么?
查看>>
圣诞要礼物手势大全,礼物在哪里?
查看>>
OSChina 周日乱弹 ——我自己能发呆到世界毁灭
查看>>
OSChina 周二乱弹 —— 好好告别啊!不要舌吻!
查看>>
使用Cygwin和 mingw 安装 python paramiko模块
查看>>
前端那些事之hack篇
查看>>
结合COMSOL,浅谈多场耦合
查看>>