---页首---

随笔分类 -  Swift

摘要:Metal 练习:第五篇-MetalKit 此篇练习是基于前一篇 Metal 练习:第四篇-Lighting 的拓展 此篇练习完成后,将会学到如何利用MetalKit框架,同时也要使用3D数学计算相关的smid框架 第一步:MetalKit 打开前一篇练习的工程Metal 练习:第四篇-Light 阅读全文
posted @ 2020-08-29 08:56 20190311 阅读(976) 评论(0) 推荐(0)
摘要:Metal 练习:第四篇-Lighting 此篇练习是基于前一篇 Metal 练习:第三篇-添加Texture 的拓展 此篇练习完成后,将会学到如何给立方体添加Lighting,过程中还会学到: 一些基本光照概念 “冯式”光照模型组成 使用着色器如何在场景中为每个点计算光照效果 第一步 首先我们要 阅读全文
posted @ 2020-08-29 08:56 20190311 阅读(429) 评论(0) 推荐(0)
摘要:Metal 练习:第三篇-添加Texture 此篇练习是基于前一篇 Metal 练习:第二篇-3D 的拓展 此篇练习完成后,将会学到如何给立方体添加Texture,过程中还会学到: 如何重用 uniform buffers 如何给3D模型使用Texture 如何给应用添加触控输入 如何调试Meta 阅读全文
posted @ 2020-07-31 20:47 20190311 阅读(759) 评论(0) 推荐(0)
摘要:Metal 练习:第二篇-3D 此篇练习是基于前一篇 Metal 练习:第一篇入门2D 的拓展 此篇练习完成后,将会学到如何设置一系列的矩阵变换来移动到3D,过程中还会学到: 如何使用model、view、projection transformations 如何使用矩阵实现几何变换 如何传递统一 阅读全文
posted @ 2020-07-31 20:44 20190311 阅读(458) 评论(0) 推荐(0)
摘要:Metal 练习:第一篇 在 iOS 8, Apple 发布了自己的3D图形GPU加速器:Metal。 Metal与OpenGL ES相似,都是一套底层的API来与3D图形硬件进行交互。不同的是Metal不是跨平台,从这一篇开始,我们将会介绍 Metal API。 将会学习Metal中一些重要的类, 阅读全文
posted @ 2020-07-31 20:42 20190311 阅读(740) 评论(0) 推荐(0)
摘要:堆排序(升序为例) 思路: 1. 首先要建一个大顶堆 2. 交换堆顶元素与最后一个元素,堆的size 1 3. 重复第二步,直至堆中只有元素一个 \ 最好、最坏、平均时间复杂度:O(nlogn) \ 空间复杂度: O(1) \ 稳定性: 不稳定 阅读全文
posted @ 2020-05-10 17:41 20190311 阅读(102) 评论(0) 推荐(0)
摘要:冒泡排序(升序为例) 思路: 1. 从头开始比较每一对相临的元素,其后者比前者大则交换,直到一轮比较结束 2. 排除1中找到最大的元素,重复1的步骤 Swift class SelectionSort { var array = [5, 7, 2, 8, 9, 4, 7, 3, 2] func so 阅读全文
posted @ 2020-04-19 13:56 20190311 阅读(114) 评论(0) 推荐(0)
摘要:计数排序(升序为例) 思路:主要思想是统计每个整数在序列中出现的次数,进而推出每个数在序列中的位置 1. 找出序列中最大最小值,最小值 min, 最大值 max 2. 新建一个counts数组,范围是 [0, max min], 先存储每个元素出现的次数,然后遍历该数组,使用每个位置存储的值是当前元 阅读全文
posted @ 2020-04-18 14:44 20190311 阅读(123) 评论(0) 推荐(0)
摘要:希尔排序(升序为例) 希尔排序的思想:将序列看成一个矩阵,根据一个步长序列将原序列分成m个列,逐列进行排序,直到列数变为1列为止 因此希尔排序的时间复杂度与步长关系密切。 希尔本人给出的步长序列为: n / (2^k),其中n为序列元素的个数,k = 1,取整数 举例: 序列元素有32个,那步长序列 阅读全文
posted @ 2020-04-17 21:22 20190311 阅读(177) 评论(0) 推荐(0)
摘要:归并排序(升序为例) 思路: + 1. 将当前序列平均分割成2q个子序列,直到不能再分割(即序列中只剩下1个元素) + 2. 再不断的将2个子序列合并成一个有序序列,直到最终合成1个序列 \ 最好、最坏、平均时间复杂度:O(nlogn),因为每次分割都是平分 \ 空间复杂度: O(n) \ 稳定性: 阅读全文
posted @ 2020-04-17 20:04 20190311 阅读(103) 评论(0) 推荐(0)
摘要:插入排序(升序排序为例) 思路: + 1. 将序列分为两个部分,头部已经排好的和后面待排序的 + 2. 从头部开始遍历每一个元素,然后插入头部已排好序的恰当位置 Swift class InsertionSort { var array = [5, 7, 2, 8, 9, 4, 7, 3, 2] / 阅读全文
posted @ 2020-04-17 17:41 20190311 阅读(128) 评论(0) 推荐(0)
摘要:快速排序(选择升序排序) 思路 + 1. 从序列中选择一个枢轴(支点,pivot),假设每次选择索引0位置为支点 + 2. 利用支点将序列分割成两个子队列 小于支点的放在支点的左侧 大于支点的放在支点的右侧 等于支点的左右都可以(这里相等放右边) + 3. 对子序列进行1,2操作,直到不能再分割(也 阅读全文
posted @ 2020-04-17 15:54 20190311 阅读(137) 评论(0) 推荐(0)
摘要:访问控制(Access Control)(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 欢迎留言 pen me 前言 访问控制是限制从其它文件和模块访问部分模块的代码,你可以为个别类型(class\struct\enum)或属于这些的属性、方法、初始化器等添加访问权限,Swi 阅读全文
posted @ 2019-11-24 22:31 20190311 阅读(301) 评论(0) 推荐(0)
摘要:内存安全(Memory Safety)(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 欢迎留言 pen me 前言 默认情况下,Swift会阻止在你代码中的不安全行为,例如:变量没初始化前不可使用、被销毁的内存不可访问、数组索引越界检查会报错;Swift也能确保在代码修改内存 阅读全文
posted @ 2019-11-09 16:46 20190311 阅读(367) 评论(0) 推荐(0)
摘要:自动引用计数(ARC)(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 前言 SWift 用ARC追踪和管理应用程序的内存使用情况,与OC中的ARC非常相似;引用计数只适用于类的实例,枚举和结构体是值类型,非引用类型并且不存在存储和通过引用传递 ARC如何工作 当创建一个类的实 阅读全文
posted @ 2019-10-27 19:50 20190311 阅读(181) 评论(0) 推荐(0)
摘要:不透明类型(Opaque Type)(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 不透明类型可解决的问题 如下示例,打印一个图形 可以通过上面使用泛型来翻转 可以用上面的两个来组装一个图形 返回不透明类型 可以将不透明类型看作泛型的反面,以下的函数返回类型要依据调用者 下面 阅读全文
posted @ 2019-10-24 11:20 20190311 阅读(601) 评论(0) 推荐(0)
摘要:泛型(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 泛型可解决的问题 如两个 类型交换 如两个 `Double` 类型交换则又要写两个函数 \ 从上面可以看出函数的功能都是一样完成两个数的交换,只是类型不同(但要注意Swift是类型安全的,如果两个类型不同编译时就会报错) 泛 阅读全文
posted @ 2019-10-09 17:31 20190311 阅读(137) 评论(0) 推荐(0)
摘要:协议(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 协议语法 示例 属性要求 协议不需指定属性是存储或计算属性,只需指定所需的属性名称和类型;协议指定了每个属性是可读或可读可写,通常在类型后跟 或 标识 协议中类型属性仍然用关键字 或 修饰 方法要求 协议定义中可定义实例和类 阅读全文
posted @ 2019-09-26 22:11 20190311 阅读(362) 评论(0) 推荐(2)
摘要:扩展(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 扩展 为类、结构体、枚举、协议添加新功能,同OC的分类很像,但扩展没有名字 扩展可以添加计算实例属性和计算类型属性(不能添加存储属性,也不能为已经存在的属性添加属性观察器) 扩展可以定义实例方法和类型方法 扩展可以提供新的初 阅读全文
posted @ 2019-09-24 16:30 20190311 阅读(172) 评论(0) 推荐(0)
摘要:嵌套类型(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 嵌套类型的应用 示例如下 嵌套类型的引用 示例 阅读全文
posted @ 2019-09-21 16:04 20190311 阅读(162) 评论(0) 推荐(0)

---页脚---