贝塞尔曲线在iOS端的绘图实践

2020 年 9 月 15 日

贝塞尔曲线在iOS端的绘图实践

1 前言

在这个大数据的时代,很多信息只有通过图形才能更好的展示给用户。例如:房屋的历史价格、基金股票的历史增长、数据占比分析图等。如何做图形?需要用到什么知识?本文将从 建模、显示 两方面来展开介绍。

2 建模

建模是一切图形的基础,其他内容的前提,要用代码展示一个图形,首先要有它的几何模型表达。目前在客户端二维图形建模上,Bézier curve(贝塞尔曲线)可以称为 经典 和 主流 并重的数学曲线。

对于贝塞尔曲线来说,最重要的是 起始点、终止点(也称锚点)、控制点。控制点决定了一条路径的弯曲轨迹,根据控制点的个数,贝塞尔曲线被分为:一阶贝塞尔曲线(0 个控制点)、二阶贝塞尔曲线(1 个控制点)、三阶贝塞尔曲线(2 个控制点)、N 阶贝塞尔曲线(n - 1 个控制点)。

2.1 贝塞尔曲线原理

以二阶贝塞尔曲线为例 解释说明:

起始点:P0 ; 控制点:P1 ; 终止点:P2

  1. 连接 P0P1 线 和 P1P2 线。
  2. 在 P0P1 线上找到点 A,在 P1P2 线上找到点 B,使得 P0A/AP1 = P1B/BP2
  3. 连接 AB,在 AB 上找到点 X,X 点满足:AX/XB = P0A/AP1 = P1B/BP2
  4. 找出所有满足公式:AX/XB = P0A/AP1 = P1B/BP2 的 X 点。(从 P0 到 P2 的红色曲线点为所有 X 点的连线)这条由所有 X 点组成的连线 即为 贝塞尔曲线。

原文链接:【 https://www.infoq.cn/article/UmMZKPbaHcTvAB63Co6u 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 9 月 15 日 10:08 452

评论

发布
暂无评论
发现更多内容

解决数据指数级增长挑战,英特尔如何又快又好提供领导力产品?

飞天鱼2017

Woman、man、camera、TV:如何做一个完整的深度学习应用

LeanCloud

深度学习 程序员 互联网 云容器引擎 LeanCloud

有选择才会有困惑

escray

面试 学习笔记 面试现场

为什么中国出了这么多厉害的互联网公司,但没有自己设计过编程语言?

代码制造者

编程语言 低代码 企业信息化 零代码 编程开发

前端智能化的加速时刻:华为机器视觉的创新方程式

脑极体

聊聊微服务

炜娓道来程序人生

架构 微服务 SOA

甲方日常2

大橘子

工作 随笔杂谈 日常

Java | 你知道快速搭建一个spring boot项目该怎么做吗?

简爱W

温故知新——Spring AOP

牛初九

spring aop ioc

OPPO互联网DevSecOps实践

OPPO安全

DevOps 安全

区块链是一个有去无返的奇幻旅程

CECBC区块链专委会

区块链

【Elasticsearch 技术分享】—— ES 查询检索数据的过程,是什么样子的?

liuzhihang

Java elasticsearch 搜索 ES Lucene Elastic Search

使用 K8s 进行作业调度实战分享

后端进阶

Kubernetes 容器 k8s 调度式分布 k8s学习

区块链承兑支付系统开发,USDT入金支付系统

13530558032

LeetCode题解:20. 有效的括号,栈,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

爱技术爱折腾,想要编程到60岁--我的十年

盛安德软件

合约跟单交易系统开发,交易所一键跟单模式搭建

13530558032

易观方舟Argo+CRM | 让企业数据发挥更大价值

易观大数据

Apache Pulsar 2.6.1 版本正式发布:2.6.0 功能增强版,新增 OAuth2 支持

Apache Pulsar

消息队列 Apache Pulsar 消息系统 消息中间件

面试官再问你Http请求过程,怼回去!

架构师修行之路

HTTP TCP/IP

架构重构之禅

ninetyhe

Java 架构设计 代码重构

XSKY星辰天合助力中国五矿打造政企办公新标杆

XSKY融合存储

迎接物联网时代,区块链大有可为

CECBC区块链专委会

云计算 大数据 区块链技术

Android |《看完不忘系列》之dagger

哈利迪

android

司法视频行为分析引擎

华宇法律科技

《搞定1》读书笔记

超超不会飞

科普小知识:区块链与分布式系统

CECBC区块链专委会

区块链 分布式

区块链钱包应用开发,数字货币钱包源码

13530558032

背景自由替换,远程办公好助手

华宇法律科技

月度工作汇报,为什么要全球直播?

赵新龙

TGO鲲鹏会 技术社区 开源社区

永续合约交易系统开发方案,合约交易所源码搭建

13530558032

跨越计算鸿沟:如何靠软硬件协同突破算力瓶颈?

跨越计算鸿沟:如何靠软硬件协同突破算力瓶颈?

贝塞尔曲线在iOS端的绘图实践-InfoQ