- (void)drawRect:(CGRect)rect { [super drawRect:rect]; //步骤一:得到当前绘制画布上下文,用于后续将内容绘制在画布上 CGContextRef context = UIGraphicsGetCurrentContext(); //步骤二:将坐标系上下翻转.对于底层的绘制引擎来说,屏幕左下角是(0,0)坐标.而对于上层的UIKit来说,左上角是(0,0)坐标.所以我们为了之后的坐标系描述按UIKit来显示,这里做了一个坐标系上下翻转操作.翻转…
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-wid…
storyboard: 新建一个CTDisplayView:UIView 代码如下: #import "CTDisplayView.h" #import "CoreText/CoreText.h" @implementation CTDisplayView -(void)drawRect:(CGRect)rect{ [super drawRect:rect];        //1获取图文上下文    CGContextRef context = UIGraphic…
一.CoreText的简介 CoreText是用于处理文字和字体的底层技术.它直接和Core Graphics(又被称为Quartz)打交道.Quartz是一个2D图形渲染引擎,能够处理OSX和iOS中图形显示问题.Quartz能够直接处理字体(font)和字形(glyphs),将文字渲染到界面上,它是基础库中唯一能够处理字形的模块.因此CoreText为了排版,需要将显示的文字内容.位置.字体.字形直接传递给Quartz.与其他UI组件相比,由于CoreText直接和Quartz来交互,所以它…
前言 本人今年主要在负责猿题库iOS客户端的开发,本文旨在通过分享猿题库iOS客户端开发过程中的技术细节,达到总结和交流的目的. 这是本技术分享系列文章的第三篇.本文涉及的技术细节是:基于CoreText的排版引擎. CoreText概述 因为猿题库的做题和解析界面需要复杂的排版,所以我们基于CoreText实现了自己的富文本排版引擎.我们的排版引擎对公式.图片和链接有着良好支持,并且支持各种字体效果混排.对于内容中的图片,支持点击查看大图功能,对于内容中的链接,支持点击操作. 下图是我们应用的…
MongoDB是面向文档的数据库管理系统DBMS(显然mongodb不是oracle那样的RDBMS,而仅仅是DBMS). 想想一下MySQL中没有任何关系型数据库的表,而由JSON类型的对象组成数据模型的样子是如何的? 值得注意的是,MongoDB既不支持JOIN(连接)也不支持transaction(事务).Significantly, MongoDB supports neither joins nor transactions. 但是请注意MongDB有着大量其他优良的特性,如二级索引.…
StreamDM:基于Spark Streaming.支持在线学习的流式分析算法引擎 streamDM:Data Mining for Spark Streaming,华为诺亚方舟实验室开源了业界第一个基于 Spark Streaming 的算法引擎StreamDM. 大数据分析按照模型是否在线学习可以分为: 离线学习(Offline Learning): 在线学习(Online Learning)两大方式, 对应的数据处理模式分别为: 批处理(Batch Mode)分析: 流处理(Stream…
Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN2.0读写 Fixflow引擎解析(一)(介绍) - Fixflow开源流程引擎介绍 简介 Fixflow是一款开源的基于BPMN2.0标准的工作流引擎,由Fixflow开源联盟组织(Fixflow OpenSource Union) 进行社区化管理,引擎底层直接支持BPMN2.0国际标准, 吸纳了…
随着Web相关技术的发展,JavaScript所要承担的工作也越来越多,早就超越了“表单验证”的范畴,这就更需要快速的解析和执行JavaScript脚本.V8引擎就是为解决这一问题而生,在node中也是采用该引擎来解析JavaScript. WebKit是由苹果2005年发起的一个开源项目,引起了众多公司的重视,几年间被很多公司所采用,在移动端更占据了垄断地位.更有甚者,开发出了基于WebKit的支持HTML5的web操作系统(如:Chrome OS.Web OS). 2.V8引擎 V8引擎是一…
大家好,现在开始本系列的第三部分,按照以下几个步骤来搭建引擎雏形: 1.分析引擎的需求 2.实现最小的3D程序 3.从中提炼引擎原型 4.一步一步地对引擎进行改进,使其具备良好的架构 5.实现与架构相关的功能,如"多线程渲染"."延迟渲染"等功能 本文进行第一步,分析引擎的需求. 业务目标 1.手把手教读者如何从0开发3D引擎 2.学习函数式编程及其在3D领域的应用 3.学习3D编程中基础的功能实现,如纹理.光照.模型等 4.学习引擎的设计和架构,如Data Ori…