首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

绘图-几个较复杂统计图案例的实现分析

UIBezierPath,把这个路径拼接上X坐标轴上的两个垂直投影点形成一个底部矩形状的封闭路径,把个路径作为渐变图层的path,并绘制一条比这个UIBezierPath顶部低一点的路径作为 渐变图层的遮罩图层...** 在 drawRect 中 对小白点的动画延迟到 x 秒后,弹性动画开始的延迟时间为 0秒持续 x秒,这样就可以保证在弹性动画结束后,开始小白点的动画。...绘制关键步骤: 使用for循环在 drawRect方法中绘制每一个扇形(上篇文章已将讲过),因为环外的标注,所以圆环需要小些,否则外环线上的文字绘制起来有可能空间不够。...根据每一个扇形的中心点位置,通过三角函数计算(三角函数中的参数是弧度,2π即为一个圆周 , iOS中为 M_PI*2,水平右侧为0)可以得到圆环外面的小圆的中心点。...,还有一个十字线,这个只要会画线段就会画十字线,这个也不多说了; 这些掌握了之后就可以绘制专属自己的K线图了,其他的都是一些细节小问题,CGContextRef还有很多用法,有兴趣的自己可以找度娘,接下来附上我的最终的绘制结果

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 自定义相机页面

    Layer加进去 - (void)drawRect:(CGRect)rect { //绘制一个遮罩 //贝塞尔曲线 画一个带有圆角的矩形 UIBezierPath *bpath...这个想法其实是为了省事,正确做法是把隐藏放在获取到图片后,即在拍摄后的代理方法中。然而万万没想到这个懒惰思想造成了一个Bug。 拍摄图片后,偶尔图片会是全黑的。...黑屏了 查了一些资料得知:当拍摄的图片正在绘制的时候,如果做了有关UIKit的图层操作,会造成黑屏。很明显,我在这里隐藏按钮是不行的,如果同时在绘制,就会黑屏。...[picker hiddenBtn];//拍照按钮隐藏 必须是拍照后隐藏,如果在拍照的同时隐藏那么会出现隐藏动画影响picker绘制问题,图片成像可能是黑色的。 我们回到界面的绘制上来。...在自定义相机页View中的drawRect方法中使用贝赛尔曲线绘制页面线条,例如四个角框: UIColor *color = kLineColor; [color set]; //设置线条颜色

    2.5K10

    仿淘宝类电商秒杀分页控件(附源码)

    ▐ 4.2 自定义菜单样式 可以看到上面没有一行设置菜单样式的代码,那是因为不设置菜单使用的是默认的样式,除此之外,菜单的样式还是可以自定义的, GFPageController为大家提供了下面14个参数来控制菜单的样式显示...; self.maskView.clipsToBounds = YES; ▐ 5.2 使用UIBezierPath绘制遮罩 大家会发现这个遮罩是多边形的。...起初我的想法是用两种图片拼接起来,一张长方形,一张三角形,后来为了自定义性更高一点,改成了用UIBezierPath来进行绘制,代码如下: 自定义一个View继承自UIView: #import "GFMaskView.h...我的初衷其实就是把这个滚动菜单封装出来,后来发现使用这个菜单的大部分情况都是和多个子控制器一起使用,所以就再进行了一步封装,把控制器的逻辑都封装到了GFPageViewController控制器中。...其中比如自定义View的正确姿势;UIScrollView中一些代理使用的细节问题;让自己的组件支持Pods等。 获取源码方式:点击左上方「网罗开发」关注并回复 “210425” 即可获取。

    1.3K20

    思路和所用到的内容2. 辅助元素的创建(背景颜色、草坪、大地、小树、云彩)3. 雪山的实现4. 轨道的实现

    不过今天的内容稍微有点多,我呢尽量只说最重要的部分,这里面所有的内容都是通过代码绘制出来的。 实现后的效果图:(这也是为了简书抓图用的,不知道为啥现在如果是gif,简书不会当成文章的缩略图。...3.1 雪山的思路 以一座雪山为例子,乍一看,以为雪山分成了两部分:雪山下半部分+山顶的雪。很快的,自己就放弃了这个思路。这样的话,中间的曲线部分画起来简直就要了人命了。...雪山.png 3.3 需要注意的点 在画山的过程中,最复杂的是找到山上左右两侧山坡上边缘的那个点的CGPoint。 以第一座山左边上坡上开始有雪的那个点来说。...// 左边第一座山顶,其实就是一个白色的三角形 CAShapeLayer *leftSnowberg = [[CAShapeLayer alloc] init]; UIBezierPath...Paste_Image.png 4.3 代码实现 绿色轨道绘制部分的代码: // 绿色铁轨的火车从右侧进入,所以从右侧开始绘画。

    1.7K50

    Swift-图像的性能优化

    面试中又会经常有这样的问题:如何实现一个图像的圆角,不要用cornerRadius ---- 模拟器常用性能测试工具 Color Blended Layers(混合图层->检测图像的混合模式) 此功能基于渲染程度对屏幕中的混合区域进行绿...Images(拉伸图像->检测图片有没有被拉伸) 会高亮那些被缩放或者拉伸以及没有正确对齐到像素边界的图片(也就是非整型坐标) 通常都会导致图片的不正常缩放,比如把一张大图当缩略图显示,或者不正确的模糊图像...那你真是太年轻了 再解决混合模式(Color Blended Layers)问题 继续刚才的话题,仅仅解决了拉伸问题后,在Color Blended Layers(混合模式)下还是有问题,如图 将绘图选项的透明状态设置为不透明...证明有图层叠加的运算,因此,不能采用透明的模式。 解决办法:给背景设置一个颜色,使其不显示默认的黑色。...这样就可以解决四个角显示黑色的问题,并且在混合模式状态下不会再有红色显示,性能可以非常的好。 开发过程中,用颜色比用图片性能会高一点。 不到万不得已,View的背景色尽量不要设置成透明颜色。

    1.7K70

    实战:绘制一个镂空图层动画3. 使用CAShapeLayer绘画动态流量图

    这篇文章通过使用CAShapeLayer和UIBezierPath来画出一个动态显示剩余流量的小动画。...CAShapeLayer 实际中,能够用CALayer完成的任务是比较少的,如果使用这个基础图层就能实现绝大部分的功能,咱们就没有必要再开启一个CAShapeLayer了嘛。...lineCap 线端点类型 lineDashPattern 线性模版 lineDashPhase 线型模版的起点 lineJoin 线连接类型 lineWidth 线宽 miterLimit 最大斜接长度...斜接长度指的是在两条线交汇处和外交之间的距离。只有lineJoin属性为kCALineJoinMiter时miterLimit才有效。边角的角度越小,斜接长度就会越大。...: 第一段实线长度为5 画完长度为5像素的实线之后,空2像素 空完2像素之后,再画10像素的实线 画完长度为10像素的实线之后,空7像素 然后重复这个数组中的数值,一直不停的绘画。

    1.7K30

    matlab的三维绘图和四维绘图「建议收藏」

    contour(z):直接绘制矩阵z的等高线 contour(x,y,z):用x和y指定等高线的x,y坐标 contour(z,n)或contour(x,y,z,n):用标量n指定绘制等高线的线条数,即从最低位置到最高位置所用的线条总数...contour(z,v)或contour(x,y,z,v):向量v中的元素指定绘制等高线的位置,该向量的长度对应绘制的线条数 [c,h] = contour(…):返回等高线矩阵c和列向量h,h是线条对象或补片对象的句柄...view(az,el)或view([az,el]):az带表方位角,el代表视角 view([x,y,z]):在直角坐标中设置视角的坐标为(x,y,z) view(2)或view(3):分别使用matlab...slice(V,sx,sy,sz):绘制立体V在x轴,y轴,z轴方向上与sx,sy,sz向量所对应点的切片图。其中V为mxnxp的三维立体数组。...slice(…,’method’):指定内插的方法,method以下方法之一 slice(axes_handle,…):在句柄值axes_handle的坐标值中绘制立体切片图 h = slice(…):

    6.3K31

    数学建模之MATLAB画图汇总

    饼图 – pie(x):绘制数据 x 的饼图,x 可以是向量或者矩阵,x 中的每一个元素将代表饼图的一个扇区,同时饼图中显示各元素总和的比例。...– pie(x, explode):绘制数据 x 的饼图,其中参数 explode 可以用来设置饼图中某个重要的扇区进行抽取式重点显示,这里需要注意的是,explode 向量的长度与 x 中的元素个数相等...– pie(x, labels):绘制数据 x 的饼图,其中参数 labels 可以用来设置饼图中各个扇区的显示标注,注意参数 labels 应该为字符串或者数字利用向量 X中的数据描绘饼图 例:有一位研究生.../sqrt(x.^2+y.^2); % 绘图 surf(x,y,z) 2.3 三维切片图的绘制 在MATLAB中slice()函数用于绘制三维切片图。...slice()函数的调用格式如下: slice(v, sx, sy, sz):输入参数 v 为三维矩阵(阶数为 m x n x p),x、y、z 轴默认状态下分别为 1:m、1:n、1:p,数据 v

    2.9K30

    OC绘制基本图形1. UIKit中封装了一些最常用的绘图方法2. 贝塞尔路径常用方法列表(BezierPath)3. 保存屏幕截图,并存储至相册

    好了,在之前的两篇文章里面写了Quartz2D的一些基本知识。从这篇开始写一下OC绘制基本图形的方法。 1....线头样式及交叉线样式.png - (void)drawRect:(CGRect)rect { // 创建路径 UIBezierPath *path = [UIBezierPath...:字号为12,颜色为灰色,描边宽度为10 NSDictionary *attriStr = @{NSFontAttributeName:[UIFont systemFontOfSize:12.0...// 绘制方式二:从指定的点开始绘制。...保存屏幕截图,并存储至相册 开启一个图形的context。开启就别忘了关闭。 iOS8.0 以后还需要获得用户许可的权限。之前的iOS不需要。 在plist中设置申请用户许可时的提示文字。

    1.6K40

    Quartz2D复习(一)--- 基础知识 绘制线段圆弧 图片水印 截图

    1、Quartz 2D是一个二维绘图引擎,同时支持ios和Mac系统; Quart2D的API是纯C语言的,API来自于Core  Graphics框架: 2、Quartz 2D可以绘制图形(线段/三角形...) drawRect: (CGRect)rect;  方法,然后在这个方法中,可以去的跟当前view相关联的图形上下文; 绘制相应的图形内容(绘制时产生的线条称为路径,路径由一个或多个线段或曲线段组成)...layer(图层)属性,drawRect: 方法中取得的是一个Layer  Graphics  Context, 因此,绘制的东西其实是绘制到view的layer上去了。  ...50 [self drawTwo]; //绘制带宽度的线段 51 [self drawThree]; //绘制实体三角形 52 [self drawFour]; /...字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0。

    2.6K10

    iOS CAShapeLayer和UIBezierPath的使用

    1.CAShapeLayer简介 CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类。...使用CAShapeLayer与贝塞尔曲线可以画出你想要的图形。 相对于Core Graphics绘制图片,使用CAShapeLayer有以下一些优点: 渲染快速。...2.贝塞尔曲线简介 在数学的数值分析领域中,贝济埃曲线(英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线。...(贝塞尔曲线扫盲) 贝塞尔曲线对应iOS中是UIBezierPath对象,它是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建。...使用贝塞尔曲线画直线和椭圆形 代码如下: // 1,绘制一条直线 UIBezierPath * path = [[UIBezierPath alloc] init]; path.lineWidth

    2K30

    iOS学习——Quartz2D学习(1)

    他是一个二维的绘图引擎,同时支持iOS和Mac系统 2、Quartz2D能完成的工作   画基本线条,绘制文字,图片,截图,自定义UIView. 3、Quartz2D在开发中的价值   当我们的控件样式极其复杂时...相关联.才能将内容绘制到View上面.在DrawRect方法方法里 步骤: 1.要先自定定UIView 2.实现DrawRect方法 3.在DrawRect方法中取得跟View相关联的上下文...在调用这些方法之前,我们要进行一些其他的任务去确保正确的绘制path,以及path的设置。 使用UIColor类的方法去stroke和fill想要的颜色。...使用stroke和fill方法进行渲染时,不需要我们手动去获取上下文了,这两个方法会自定获取view的上下文,然后在该view上绘制渲染path对应的路径,stroke是绘制线,fill是填充path对应的封闭区域...,但是填充需要一个封闭的路径才能填充,所以画扇形的方法为: 1.先画一个圆弧 2.再添加一个一根线到圆心: 3.然后封闭路径:[path closePath],该方法会自动从路径的终点到路径的起点封闭起来

    1.1K20

    ios 图像处理

    删除 UIBezierPath 对象中的所有点, 效果也就等同于删除了所有子路经 - (void)removeAllPoints; 将指定 UIBezierPath 中的内容添加到当前 UIBezierPath...对象中 - (void)appendPath:(UIBezierPath *)bezierPath; //该方法将会在当前 UIBezierPath 对象的路径中追加 UIBezierPath的属性...  * 如果当前路径为空, 那么该属性的值将会是 CGPointZero   */ lineWidth -> /**   * 线宽属性定义了 `UIBezierPath` 对象中绘制的曲线规格....语言的数组, 其中每一个元素都是 CGFloat   *                 数组中的元素代表着线段每一部分的长度, 第一个元素代表线段的第一条线,   *                ...@property(copy) NSString *lineCap; //线连接处类型 @property(copy) NSString *lineJoin; //绘制虚线路径 //线型模板的起始位置

    1.6K30

    iOS动画三板斧(二)--CoreAnimation动画介绍使用附加

    示例代码可能与gif图不太一致,因为gif图是从其他demo中录制下来的。...1.UIBezierPath UIBezierPath主要是用来绘制路径的,分为一阶、二阶.....n阶。一阶是直线,二阶以上才是曲线。而最终路径的显示还是得依靠CALayer。...方法四:根据某个CGRect绘制内切圆或椭圆(CGRect是正方形即为圆,为长方形则为椭圆)。 方法五:根据某个CGRect绘制路径。...方法六:绘制带圆角的矩形路径,参数2哪个角,参数3,横、纵向半径。 方法七:绘制每个角都是圆角的矩形,参数2是半径。...有三种方式:1、直接使用UIBezierPath的方法;2、使用CoreGraphics绘制;3、利用CAShapeLayer绘制。 示例代码如下,绘制一个右侧为弧型的视图: ?

    1.2K40

    matlab—进阶绘图

    图10-4 bar函数 10.5 Pie Charts pie函数用于描绘圆饼图 10.5.1pie(x) 利用向量x中的数据描绘饼图 示例: ?...图10-17 meshc函数 10.11.2 等值线图 contour是等高线绘制函数,其调用格式为: contour(z),根据矩阵z画出等高线,z是以x,y为平面的高度,z必须是一个至少二维的矩阵,...x,y轴的范围是[1,n]和[1,m],[m,n] = size(z) contour(z,n),用n条水平线来绘制z的等高线 contour(z,v),是以向量v中的数据来绘制矩阵z的等高线,等高线的个数等于向量...图10-20 surfc函数 10.11.4 绘制一些常见的三维表面 (1)先根据x,y,z矩阵确定网格点 (2)用网格线连接在同一行中的网格点 (3)用网格线连接在同一列中的网格点 (4)用颜色数组C...用surf()绘制三角形平面 绘图思路:想象一下,有两个A点,只不过他们完全重合,这样就有四个顶点了,可以分成2行2列,将相应的坐标放进x,y,z矩阵即可绘制 示例: ?

    2.5K30
    领券