zoukankan      html  css  js  c++  java
  • 三次贝塞尔曲线画圆的方法。

    上一篇说的仿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。


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

  • 相关阅读:
    我的收藏
    VS2019错误:CS8370 的处理方法
    Win7设置远程访问(免密码)---- Cuba
    【收藏】关于AsposeDLL的使用
    VS Code 离线安装插件(中文包)
    WinCE在启动界面无法进入系统
    WinCE 清除远程连接缓存
    MySQL 创建远程访问用户
    MySQL 命令行(常用)操作数据库
    C# 制作关键字醒目显示控件
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7060865.html
Copyright © 2011-2022 走看看