iOS开发图像处理(一):绘制动态的贝塞尔曲线

前言

使用UIBezierPath或者CGContext进行图形绘制想必大家应该都比较熟悉了,但笔者最近项目有一个需求是做一个画板工具,需要动态绘制图形和平滑曲线,并且曲线可以编辑和拖动来改变形状。这个需求一拿到就想到使用贝塞尔曲线来绘制平滑曲线,但要动态绘制就觉得很头疼了,经过研究之后发现还是不难解决的。下面详细讲讲,有类似需求的可作参考。

实现效果

如下:
在这里插入图片描述

思路

官方提供的贝塞尔曲线绘制API有以下两个方法,分别是绘制二阶贝塞尔曲线和三阶贝塞尔曲线:

- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;  
- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2;

要想实现编辑曲线,能改变的参数就只有起点坐标、终点坐标、控制点坐标。因此从这三个参数入手,选中起点和终点并拖动可以改变曲线的起点和终点以及弯曲程度,拖动画板空白处可以改变曲线的控制点(也就是贝塞尔曲线的切线交点),从而改变曲线形状。本文以二阶贝塞尔
曲线为例。

代码

具体代码逻辑如下:

本文主要想写的是实现贝塞尔曲线动态绘制逻辑,因此将画板功能进行简化࿰

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值