使用贝赛尔路径(UIBezierPath)创建画板

  在iOS开发中,创建图形,经常会使用贝塞尔路径,用于描绘一些比较复杂的图形。

  使用贝塞尔路径,需要在view中的方法- (void)drawRect:(CGRect)rect中进行描绘。

 1 - (void)drawRect:(CGRect)rect{
 2     UIBezierPath *path = [UIBezierPath bezierPath];
 3     // 起点
 4     [path moveToPoint:CGPointMake(0, 0)];
 5     // 途经点
 6     [path addLineToPoint:CGPointMake(100, 0)];
 7     [path addLineToPoint:CGPointMake(0, 100)];
 8     [path addLineToPoint:CGPointMake(0, 0)];
 9
10     // 设置颜色
11     [[UIColor blackColor]set];
12     // 设置线条宽度
13     path.lineWidth = 1;
14
15     // 渲染:描边
16     // [path stroke];
17     // 渲染:填充
18     [path fill];
19 }

  上面的代码使用贝塞尔路径在view上创建了一个填充三角形。

  贝塞尔曲线是一种矢量图形

时间: 2024-10-10 13:29:11

使用贝赛尔路径(UIBezierPath)创建画板的相关文章

_tsplitpath_s(分解路径) _tmakepath_s(创建路径)

函数原型: 函数原型:errno_t _splitpath_s(   const char * path,   char * drive,   size_t driveNumberOfElements,   char * dir,   size_t dirNumberOfElements,   char * fname,   size_t nameNumberOfElements,   char * ext,   size_t extNumberOfElements);errno_t _wspl

根据图像路径,创建CBitmap对象的方法

因为项目的关系,需要根据图像路径,创建CBitmap对象.起初查资料找到了LoadBitmap这个函数,根据CSDN得 BOOL LoadBitmap ( LPCTSTR lpszResourceName ); Parameters lpszResourceName:Points to a null-terminated string that contains the name of the bitmap resource. 以为这里的lpszResourceName参数是文件路径名,但经过尝

Delphi - 本地路径的创建、清空本地指定文件夹下的文件

本地路径的创建 在做下载操作时,我们一般先把文件下载到本地指定的路径下,然后再做其他使用. 为了防止程序出现异常,我们通常需要先判断本地是否存在指定的路径. 以C盘Tmp文件夹为例,我们可以这样做,代码如下: 1 if not DirectoryExists('C:\Tmp') then 2 if not CreateDir('C:\Tmp') then 3 raise 4 Exception.Create('Opps, Create New Dir Failed!'); 清空本地指定文件夹下的

iOS 沙盒路径获取,创建文件

沙盒下主要有四个文件夹:document,caches,tmp,library document 的路径 程序运行时生成的文件,这个文件不要存比较放大的文件,比如音频,视频类,因为这里的东西会被上传 caches 的路径 一般用于文件的下载,存储(不会被上传) tmp 临时文件.程序结束后应该清空 沙盒文件夹路径获取: 获取沙盒路径: 1 NSString *sandBoxPath = NSHomeDirectory(); 获取 document : 1 NSString *documentPa

android96 内存创建图片副本,画画板

package com.itheima.copy; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; imp

Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)

过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 SID orcl Standby数据库 IP 172.17.22.17 SID orcl_standby 设置提示,以区分操作的位置 primary数据库 set SQLPROMPT Primary> standby数据库 set SQLPROMPT StandBy> 1.Primary端设置

JAVA File的创建及相对路径绝对路径

http://blog.sina.com.cn/s/blog_9386f17b0100w2vv.html JAVA File的创建及相对路径绝对路径 (2011-12-09 08:27:56) 转载▼ 标签: 杂谈 分类: 技术 File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一个mytest.txt对象.注意 这个对象只含有文件的属性(如大小,是否可读,修改时间等),不包含文件的内容,所以

iOS UIBezierPath类 介绍

使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状. 1.Bezier Path 基础 UIBezierPath对象是CGPathRef数据类型的封装.path如果是基于矢量形状的,都用直线和曲线段去创建.我们使用直线段去创建矩形和多边形,使用曲线段去创建弧(arc),圆或者其他复杂的曲线形状.每一段都包括一个或者多个点,绘图命令定义如

iOS_24_画画板(含取色板)

终于效果例如以下: 一.简单说明 1.使用一个数组 strokesArr(笔画数组)记录全部笔画.数组中保存的是一个个的笔画字典,一个字典就是一个笔画.笔画字典中有三项:笔画的大小.颜色.pointsArrInOneStroke数组,(保存的是touch begin时的落笔点和touch move过程中经过的点) 2.绘制的时候,从strokesArr(笔画数组)里取出每个字典(一个字典就是一个笔画).依据字典中笔画的大小.颜色.笔画所经过的点坐标(pointsArrInOneStroke数组)