• Django2-xadmin

    这是最新的Django2.0+版本的xadmin插件,下载后直接在终端pip install 安装就可以了,不会像出现版本不兼容问题(Django2.0以后的哈)

    0
    72
    1.22MB
    2018-06-19
    9
  • (2016英文版和中文版两本书)Python编程:从入门到实践.pdf高清

    英文目录 Chapter 1: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Chapter 2: Variables and Simple Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Chapter 3: Introducing Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Chapter 4: Working with Lists............................................ 53 Chapter 5: if Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Chapter 6: Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Chapter 7: User Input and while Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Chapter 8: Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Chapter 9: Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Chapter 10: Files and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Chapter 11: Testing Your Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Part II: Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Project 1: Alien Invasion Chapter 12: A Ship That Fires Bullets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Chapter 13: Aliens! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Chapter 14: Scoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 x Brief Contents Project 2: Data Visualization Chapter 15: Generating Data........................................... 321 Chapter 16: Downloading Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Chapter 17: Working with APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Project 3: Web Applications Chapter 18: Getting Started with Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Chapter 19: User Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Chapter 20: Styling and Deploying an App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Afterword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 Appendix A: Installing Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 Appendix B: Text Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 Appendix C: Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 Appendix D: Using Git for Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 中文目录: 章 起步  2 1.1 搭建编程环境  2 1.1.1 Python 2和Python 3  2 1.1.2 运行Python代码片段  3 1.1.3 Hello World程序  3 1.2 在不同操作系统中搭建Python编程环境  3 1.2.1 在Linux系统中搭建Python编程环境  3 1.2.2 在OS X系统中搭建Python编程环境  6 1.2.3 在Windows系统中搭建Python编程环境  8 1.3 解决安装问题  12 1.4 从终端运行Python程序  13 1.4.1 在Linux和OS X系统中从终端运行Python程序  13 1.4.2 在Windows系统中从终端运行Python程序  13 1.5 小结  14 第2章 变量和简单数据类型  15 2.1 运行hello_world.py时发生的情况  15 2.2 变量  16 2.2.1 变量的命名和使用  16 2.2.2 使用变量时避免命名错误  17 2.3 字符串  18 2.3.1 使用方法修改字符串的大小写  19 2.3.2 合并(拼接)字符串  19 2.3.3 使用制表符或换行符来添加空白  20 2.3.4 删除空白  21 2.3.5 使用字符串时避免语法错误  22 2.3.6 Python 2中的print语句  23 2.4 数字  24 2.4.1 整数  24 2.4.2 浮点数  25 2.4.3 使用函数str()避免类型错误  25 2.4.4 Python 2中的整数  26 2.5 注释  27 2.5.1 如何编写注释  27 2.5.2 该编写什么样的注释  28 2.6 Python之禅  28 2.7 小结  30 第3章 列表简介  31 3.1 列表是什么  31 3.1.1 访问列表元素  32 3.1.2 索引从0而不是1开始  32 3.1.3 使用列表中的各个值  33 3.2 修改、添加和删除元素  33 3.2.1 修改列表元素  34 3.2.2 在列表中添加元素  34 3.2.3 从列表中删除元素  35 3.3 组织列表  39 3.3.1 使用方法sort()对列表进行永久性排序  39 3.3.2 使用函数sorted()对列表进行临时排序  40 3.3.3 倒着打印列表  41 3.3.4 确定列表的长度  41 3.4 使用列表时避免索引错误  42 3.5 小结  43 第4章 操作列表  44 4.1 遍历整个列表  44 4.1.1 深入地研究循环  45 4.1.2 在for循环中执行更多的操作  46 4.1.3 在for循环结束后执行一些操作  47 4.2 避免缩进错误  47 4.2.1 忘记缩进  48 4.2.2 忘记缩进额外的代码行  48 4.2.3 不必要的缩进  49 4.2.4 循环后不必要的缩进  49 4.2.5 遗漏了冒号  50 4.3 创建数值列表  51 4.3.1 使用函数range()  51 4.3.2 使用range()创建数字列表  51 4.3.3 对数字列表执行简单的统计计算  53 4.3.4 列表解析  53 4.4 使用列表的一部分  54 4.4.1 切片  54 4.4.2 遍历切片  56 4.4.3 复制列表  56 4.5 元组  59 4.5.1 定义元组  59 4.5.2 遍历元组中的所有值  59 4.5.3 修改元组变量  60 4.6 设置代码格式  61 4.6.1 格式设置指南  61 4.6.2 缩进  61 4.6.3 行长  61 4.6.4 空行  62 4.6.5 其他格式设置指南  62 4.7 小结  63 第5章 if语句  64 5.1 一个简单示例  64 5.2 条件测试  65 5.2.1 检查是否相等  65 5.2.2 检查是否相等时不考虑大小写  65 5.2.3 检查是否不相等  66 5.2.4 比较数字  67 5.2.5 检查多个条件  67 5.2.6 检查特定值是否包含在列表中  68 5.2.7 检查特定值是否不包含在列表中  69 5.2.8 布尔表达式  69 5.3 if语句  70 5.3.1 简单的if语句  70 5.3.2 if-else语句  71 5.3.3 if-elif-else结构  72 5.3.4 使用多个elif代码块  73 5.3.5 省略else代码块  74 5.3.6 测试多个条件  74 5.4 使用if语句处理列表  76 5.4.1 检查特殊元素  77 5.4.2 确定列表不是空的  78 5.4.3 使用多个列表  78 5.5 设置if语句的格式  80 5.6 小结  80 第6章 字典  81 6.1 一个简单的字典  81 6.2 使用字典  82 6.2.1 访问字典中的值  82 6.2.2 添加键—值对  83 6.2.3 先创建一个空字典  83 6.2.4 修改字典中的值  84 6.2.5 删除键—值对  85 6.2.6 由类似对象组成的字典  86 6.3 遍历字典  87 6.3.1 遍历所有的键—值对  87 6.3.2 遍历字典中的所有键  89 6.3.3 按顺序遍历字典中的所有键  91 6.3.4 遍历字典中的所有值  91 6.4 嵌套  93 6.4.1 字典列表  93 6.4.2 在字典中存储列表  95 6.4.3 在字典中存储字典  97 6.5 小结  99 第7章 用户输入和while循环  100 7.1 函数input()的工作原理  100 7.1.1 编写清晰的程序  101 7.1.2 使用int()来获取数值输入  102 7.1.3 求模运算符  103 7.1.4 在Python 2.7中获取输入  104 7.2 while循环简介  104 7.2.1 使用while循环  104 7.2.2 让用户选择何时退出  105 7.2.3 使用标志  106 7.2.4 使用break退出循环  107 7.2.5 在循环中使用continue  108 7.2.6 避免无限循环  109 7.3 使用while循环来处理列表和字典  110 7.3.1 在列表之间移动元素  110 7.3.2 删除包含特定值的所有列表元素  111 7.3.3 使用用户输入来填充字典  112 7.4 小结  113 第8章 函数  114 8.1 定义函数  114 8.1.1 向函数传递信息  115 8.1.2 实参和形参  115 8.2 传递实参  116 8.2.1 位置实参  116 8.2.2 关键字实参  118 8.2.3 默认值  118 8.2.4 等效的函数调用  119 8.2.5 避免实参错误  120 8.3 返回值  121 8.3.1 返回简单值  121 8.3.2 让实参变成可选的  122 8.3.3 返回字典  123 8.3.4 结合使用函数和while循环  124 8.4 传递列表  126 8.4.1 在函数中修改列表  126 8.4.2 禁止函数修改列表  129 8.5 传递任意数量的实参  130 8.5.1 结合使用位置实参和任意数量实参  131 8.5.2 使用任意数量的关键字实参  131 8.6 将函数存储在模块中  133 8.6.1 导入整个模块  133 8.6.2 导入特定的函数  134 8.6.3 使用as给函数指定别名  134 8.6.4 使用as给模块指定别名  135 8.6.5 导入模块中的所有函数  135 8.7 函数编写指南  136 8.8 小结  137 第9章 类  138 9.1 创建和使用类  138 9.1.1 创建Dog类  139 9.1.2 根据类创建实例  140 9.2 使用类和实例  142 9.2.1 Car类  143 9.2.2 给属性指定默认值  143 9.2.3 修改属性的值  144 9.3 继承  147 9.3.1 子类的方法__init__()  147 9.3.2 Python 2.7中的继承  149 9.3.3 给子类定义属性和方法  149 9.3.4 重写父类的方法  150 9.3.5 将实例用作属性  150 9.3.6 模拟实物  152 9.4 导入类  153 9.4.1 导入单个类  153 9.4.2 在一个模块中存储多个类  155 9.4.3 从一个模块中导入多个类  156 9.4.4 导入整个模块  157 9.4.5 导入模块中的所有类  157 9.4.6 在一个模块中导入另一个模块  157 9.4.7 自定义工作流程  158 9.5 Python标准库  159 9.6 类编码风格  161 9.7 小结  161 第10章 文件和异常  162 10.1 从文件中读取数据  162 10.1.1 读取整个文件  162 10.1.2 文件路径  164 10.1.3 逐行读取  165 10.1.4 创建一个包含文件各行内容的列表  166 10.1.5 使用文件的内容  166 10.1.6 包含一百万位的大型文件  168 10.1.7 圆周率值中包含你的生日吗  168 10.2 写入文件  169 10.2.1 写入空文件  170 10.2.2 写入多行  170 10.2.3 附加到文件  171 10.3 异常  172 10.3.1 处理ZeroDivisionError异常  172 10.3.2 使用try-except 代码块  173 10.3.3 使用异常避免崩溃  173 10.3.4 else 代码块  174 10.3.5 处理FileNotFoundError异常  175 10.3.6 分析文本  176 10.3.7 使用多个文件  177 10.3.8 失败时一声不吭  178 10.3.9 决定报告哪些错误  179 10.4 存储数据  180 10.4.1 使用json.dump()和json.load()  180 10.4.2 保存和读取用户生成的数据  181 10.4.3 重构  183 10.5 小结  186 第11章 测试代码  187 11.1 测试函数  187 11.1.1 单元测试和测试用例  188 11.1.2 可通过的测试  188 11.1.3 不能通过的测试  190 11.1.4 测试未通过时怎么办  191 11.1.5 添加新测试  191 11.2 测试类  193 11.2.1 各种断言方法  193 11.2.2 一个要测试的类  194 11.2.3 测试AnonymousSurvey类  195 11.2.4 方法setUp()  197 11.3 小结  199 第二部分 项 目 项目1 外星人入侵  202 第12章 武装飞船  203 12.1 规划项目  203 12.2 安装Pygame  204 12.2.1 使用pip安装Python包  204 12.2.2 在Linux系统中安装Pygame  206 12.2.3 在OS X系统中安装Pygame  207 12.2.4 在Windows系统中安装Pygame  207 12.3 开始游戏项目  207 12.3.1 创建Pygame窗口以及响应用户输入  208 12.3.2 设置背景色  209 12.3.3 创建设置类  210 12.4 添加飞船图像  211 12.4.1 创建Ship类  212 12.4.2 在屏幕上绘制飞船  213 12.5 重构:模块game_functions  214 12.5.1 函数check_events()  214 12.5.2 函数update_screen()  215 12.6 驾驶飞船  216 12.6.1 响应按键  216 12.6.2 允许不断移动  217 12.6.3 左右移动  219 12.6.4 调整飞船的速度  220 12.6.5 限制飞船的活动范围  221 12.6.6 重构check_events()  222 12.7 简单回顾  223 12.7.1 alien_invasion.py  223 12.7.2 settings.py  223 12.7.3 game_functions.py  223 12.7.4 ship.py  223 12.8 射击  224 12.8.1 添加子弹设置  224 12.8.2 创建Bullet类  224 12.8.3 将子弹存储到编组中  226 12.8.4 开火  227 12.8.5 删除已消失的子弹  228 12.8.6 限制子弹数量  229 12.8.7 创建函数update_bullets()  229 12.8.8 创建函数fire_bullet()  230 12.9 小结  231 第13章 外星人  232 13.1 回顾项目  232 13.2 创建第一个外星人  233 13.2.1 创建Alien类  233 13.2.2 创建Alien实例  234 13.2.3 让外星人出现在屏幕上  235 13.3 创建一群外星人  236 13.3.1 确定一行可容纳多少个外星人  236 13.3.2 创建多行外星人  236 13.3.3 创建外星人群  237 13.3.4 重构create_fleet()  239 13.3.5 添加行  240 13.4 让外星人群移动  242 13.4.1 向右移动外星人  243 13.4.2 创建表示外星人移动方向的设置  244 13.4.3 检查外星人是否撞到了屏幕边缘  244 13.4.4 向下移动外星人群并改变移动方向  245 13.5 射杀外星人  246 13.5.1 检测子弹与外星人的碰撞  246 13.5.2 为测试创建大子弹  247 13.5.3 生成新的外星人群  248 13.5.4 提高子弹的速度  249 13.5.5 重构update_bullets()  249 13.6 结束游戏  250 13.6.1 检测外星人和飞船碰撞  250 13.6.2 响应外星人和飞船碰撞  251 13.6.3 有外星人到达屏幕底端  254 13.6.4 游戏结束  255 13.7 确定应运行游戏的哪些部分  255 13.8 小结  256 第14章 记分  257 14.1 添加Play 按钮  257 14.1.1 创建Button类  258 14.1.2 在屏幕上绘制按钮  259 14.1.3 开始游戏  261 14.1.4 重置游戏  261 14.1.5 将Play 按钮切换到非活动状态  263 14.1.6 隐藏光标  263 14.2 提高等级  264 14.2.1 修改速度设置  264 14.2.2 重置速度  266 14.3 记分  267 14.3.1 显示得分  267 14.3.2 创建记分牌  268 14.3.3 在外星人被消灭时更新得分  270 14.3.4 将消灭的每个外星人的点数都计入得分  271 14.3.5 提高点数  271 14.3.6 将得分圆整  272 14.3.7 最高得分  274 14.3.8 显示等级  276 14.3.9 显示余下的飞船数  279 14.4 小结  283 项目2 数据可视化  284 第15章 生成数据  285 15.1 安装matplotlib  285 15.1.1 在Linux系统中安装matplotlib  286 15.1.2 在OS X系统中安装matplotlib  286 15.1.3 在Windows系统中安装matplotlib  286 15.1.4 测试matplotlib  287 15.1.5 matplotlib画廊  287 15.2 绘制简单的折线图  287 15.2.1 修改标签文字和线条粗细  288 15.2.2 校正图形  289 15.2.3 使用scatter()绘制散点图并设置其样式  290 15.2.4 使用scatter()绘制一系列点  291 15.2.5 自动计算数据  292 15.2.6 删除数据点的轮廓  293 15.2.7 自定义颜色  293 15.2.8 使用颜色映射  294 15.2.9 自动保存图表  295 15.3 随机漫步  295 15.3.1 创建RandomWalk()类  296 15.3.2 选择方向  296 15.3.3 绘制随机漫步图  297 15.3.4 模拟多次随机漫步  298 15.3.5 设置随机漫步图的样式  299 15.3.6 给点着色  299 15.3.7 重新绘制起点和终点  300 15.3.8 隐藏坐标轴  301 15.3.9 增加点数  301 15.3.10 调整尺寸以适合屏幕  302 15.4 使用Pygal模拟掷骰子  303 15.4.1 安装Pygal  304 15.4.2 Pygal画廊  304 15.4.3 创建Die类  304 15.4.4 掷骰子  305 15.4.5 分析结果  305 15.4.6 绘制直方图  306 15.4.7 同时掷两个骰子  307 15.4.8 同时掷两个面数不同的骰子  309 15.5 小结  311 第16章 下载数据  312 16.1 CSV文件格式  312 16.1.1 分析CSV文件头  313 16.1.2 打印文件头及其位置  314 16.1.3 提取并读取数据  314 16.1.4 绘制气温图表  315 16.1.5 模块datetime  316 16.1.6 在图表中添加日期  317 16.1.7 涵盖更长的时间  318 16.1.8 再绘制一个数据系列  319 16.1.9 给图表区域着色  320 16.1.10 错误检查  321 16.2 制作世界人口地图:JSON格式  324 16.2.1 下载世界人口数据  324 16.2.2 提取相关的数据  324 16.2.3 将字符串转换为数字值  326 16.2.4 获取两个字母的国别码  327 16.2.5 制作世界地图  329 16.2.6 在世界地图上呈现数字数据  330 16.2.7 绘制完整的世界人口地图  331 16.2.8 根据人口数量将国家分组  333 16.2.9 使用Pygal设置世界地图的样式  334 16.2.10 加亮颜色主题  335 16.3 小结  337 第17章 使用API  338 17.1 使用Web API  338 17.1.1 Git和GitHub  338 17.1.2 使用API调用请求数据  339 17.1.3 安装requests  339 17.1.4 处理API响应  340 17.1.5 处理响应字典  340 17.1.6 概述最受欢迎的仓库  342 17.1.7 监视API的速率限制  343 17.2 使用Pygal可视化仓库  344 17.2.1 改进Pygal图表  346 17.2.2 添加自定义工具提示  347 17.2.3 根据数据绘图  349 17.2.4 在图表中添加可单击的链接  350 17.3 Hacker News API  350 17.4 小结  353 项目3 Web 应用程序  354 第18章 Django入门  355 18.1 建立项目  355 18.1.1 制定规范  355 18.1.2 建立虚拟环境  356 18.1.3 安装virtualenv  356 18.1.4 激活虚拟环境  357 18.1.5 安装Django  357 18.1.6 在Django中创建项目  357 18.1.7 创建数据库  358 18.1.8 查看项目  359 18.2 创建应用程序  360 18.2.1 定义模型  360 18.2.2 激活模型  362 18.2.3 Django管理网站  363 18.2.4 定义模型Entry  365 18.2.5 迁移模型Entry  366 18.2.6 向管理网站注册Entry  366 18.2.7 Django shell  367 18.3 创建网页:学习笔记主页  369 18.3.1 映射URL  369 18.3.2 编写视图  371 18.3.3 编写模板  372 18.4 创建其他网页  373 18.4.1 模板继承  373 18.4.2 显示所有主题的页面  375 18.4.3 显示特定主题的页面  378 18.5 小结  381 第19章 用户账户  382 19.1 让用户能够输入数据  382 19.1.1 添加新主题  382 19.1.2 添加新条目  386 19.1.3 编辑条目  390 19.2 创建用户账户  392 19.2.1 应用程序users  393 19.2.2 登录页面  394 19.2.3 注销  396 19.2.4 注册页面  397 19.3 让用户拥有自己的数据  400 19.3.1 使用@login_required限制访问  400 19.3.2 将数据关联到用户  402 19.3.3 只允许用户访问自己的主题  405 19.3.4 保护用户的主题  405 19.3.5 保护页面edit_entry  406 19.3.6 将新主题关联到当前用户  406 19.4 小结  408 第20章 设置应用程序的样式并对其进行部署  409 20.1 设置项目“学习笔记”的样式  409 20.1.1 应用程序django-bootstrap3  410 20.1.2 使用Bootstrap来设置项目“学习笔记”的样式  411 20.1.3 修改base.html  411 20.1.4 使用jumbotron设置主页的样式  414 20.1.5 设置登录页面的样式  415 20.1.6 设置new_topic页面的样式  416 20.1.7 设置topics页面的样式  417 20.1.8 设置topic页面中条目的样式  417 20.2 部署“学习笔记”  419 20.2.1 建立Heroku账户  420 20.2.2 安装Heroku Toolbelt  420 20.2.3 安装必要的包  420 20.2.4 创建包含包列表的文件requirements.txt  421 20.2.5 指定Python版本  422 20.2.6 为部署到Herohu而修改settings.py  422 20.2.7 创建启动进程的Procfile  423 20.2.8 为部署到Herohu而修改wsgi.py  423 20.2.9 创建用于存储静态文件的目录  424 20.2.10 在本地使用gunicorn服务器  424 20.2.11 使用Git跟踪项目文件  425 20.2.12 推送到Heroku  426 20.2.13 在Heroku上建立数据库  427 20.2.14 改进Heroku部署  428 20.2.15 确保项目的安全  429 20.2.16 提交并推送修改  430 20.2.17 创建自定义错误页面  431 20.2.18 继续开发  434 20.2.19 设置SECRET_KEY  434 20.2.20 将项目从Heroku删除  434 20.3 小结  435 附录A 安装Python  436 附录B 文本编辑器  441 附录C 寻求帮助  447 附录D 使用Git进行版本控制  451

    0
    0
    58KB
    2018-05-25
    0
  • Multiple View Geometry in Computer Vision Second Edition

    高清非扫描,是文档类的PDF版本,下面附上书的目录 作者: Richard Hartley / Andrew Zisserman 出版社: Cambridge University Press 出版年: 2004-4-19 页数: 670 定价: USD 139.00 1 Introduction – a Tour of Multiple View Geometry 1 1.1 Introduction – the ubiquitous projective geometry 1 1.2 Camera projections 6 1.3 Reconstruction from more than one view 10 1.4 Three-view geometry 12 1.5 Four view geometry and n-view reconstruction 13 1.6 Transfer 14 1.7 Euclidean reconstruction 16 1.8 Auto-calibration 17 1.9 The reward I : 3D graphical models 18 1.10 The reward II: video augmentation 19 PART 0: The Background: Projective Geometry, Transformations and Estimation 23 Outline 24 2 Projective Geometry and Transformations of 2D 25 2.1 Planar geometry 25 2.2 The 2D projective plane 26 2.3 Projective transformations 32 2.4 A hierarchy of transformations 37 2.5 The projective geometry of 1D 44 2.6 Topology of the projective plane 46 2.7 Recovery of affine and metric properties from images 47 2.8 More properties of conics 58 2.9 Fixed points and lines 61 2.10 Closure 62 3 Projective Geometry and Transformations of 3D 65 3.1 Points and projective transformations 65 3.2 Representing and transforming planes, lines and quadrics 66 v vi Contents 3.3 Twisted cubics 75 3.4 The hierarchy of transformations 77 3.5 The plane at infinity 79 3.6 The absolute conic 81 3.7 The absolute dual quadric 83 3.8 Closure 85 4 Estimation – 2D Projective Transformations 87 4.1 The Direct Linear Transformation (DLT) algorithm 88 4.2 Different cost functions 93 4.3 Statistical cost functions and Maximum Likelihood estimation 102 4.4 Transformation invariance and normalization 104 4.5 Iterative minimization methods 110 4.6 Experimental comparison of the algorithms 115 4.7 Robust estimation 116 4.8 Automatic computation of a homography 123 4.9 Closure 127 5 Algorithm Evaluation and Error Analysis 132 5.1 Bounds on performance 132 5.2 Covariance of the estimated transformation 138 5.3 Monte Carlo estimation of covariance 149 5.4 Closure 150 PART I: Camera Geometry and Single View Geometry 151 Outline 152 6 Camera Models 153 6.1 Finite cameras 153 6.2 The projective camera 158 6.3 Cameras at infinity 166 6.4 Other camera models 174 6.5 Closure 176 7 Computation of the Camera Matrix P 178 7.1 Basic equations 178 7.2 Geometric error 180 7.3 Restricted camera estimation 184 7.4 Radial distortion 189 7.5 Closure 193 8 More Single View Geometry 195 8.1 Action of a projective camera on planes, lines, and conics 195 8.2 Images of smooth surfaces 200 8.3 Action of a projective camera on quadrics 201 8.4 The importance of the camera centre 202 8.5 Camera ca Contents vii 8.6 Vanishing points and vanishing lines 213 8.7 Affine 3D measurements and reconstruction 220 8.8 Determining camera calibration K from a single view 223 8.9 Single view reconstruction 229 8.10 The calibrating conic 231 8.11 Closure 233 PART II: Two-View Geometry 237 Outline 238 9 Epipolar Geometry and the Fundamental Matrix 239 9.1 Epipolar geometry 239 9.2 The fundamental matrix F 241 9.3 Fundamental matrices arising from special motions 247 9.4 Geometric representation of the fundamental matrix 250 9.5 Retrieving the camera matrices 253 9.6 The essential matrix 257 9.7 Closure 259 10 3D Reconstruction of Cameras and Structure 262 10.1 Outline of reconstruction method 262 10.2 Reconstruction ambiguity 264 10.3 The projective reconstruction theorem 266 10.4 Stratified reconstruction 267 10.5 Direct reconstruction – using ground truth 275 10.6 Closure 276 11 Computation of the Fundamental Matrix F 279 11.1 Basic equations 279 11.2 The normalized 8-point algorithm 281 11.3 The algebraic minimization algorithm 282 11.4 Geometric distance 284 11.5 Experimental evaluation of the algorithms 288 11.6 Automatic computation of F 290 11.7 Special cases of F-computation 293 11.8 Correspondence of other entities 294 11.9 Degeneracies 295 11.10 A geometric interpretation of F-computation 297 11.11 The envelope of epipolar lines 298 11.12 Image rectification 302 11.13 Closure 308 12 Structure Computation 310 12.1 Problem statement 310 12.2 Linear triangulation methods 312 12.3 Geometric error cost function 313 12.4 Sampson approximation (first-order geometric correction) 314 viii Contents 12.5 An optimal solution 315 12.6 Probability distribution of the estimated 3D point 321 12.7 Line reconstruction 321 12.8 Closure 323 13 Scene planes and homographies 325 13.1 Homographies given the plane and vice versa 326 13.2 Plane induced homographies given F and image correspondences 329 13.3 Computing F given the homography induced by a plane 334 13.4 The infinite homography H∞ 338 13.5 Closure 340 14 Affine Epipolar Geometry 344 14.1 Affine epipolar geometry 344 14.2 The affine fundamental matrix 345 14.3 Estimating FA from image point correspondences 347 14.4 Triangulation 353 14.5 Affine reconstruction 353 14.6 Necker reversal and the bas-relief ambiguity 355 14.7 Computing the motion 357 14.8 Closure 360 PART III: Three-View Geometry 363 Outline 364 15 The Trifocal Tensor 365 15.1 The geometric basis for the trifocal tensor 365 15.2 The trifoc Contents ix 17.3 Quadrilinear relations 418 17.4 Intersections of four planes 421 17.5 Counting arguments 422 17.6 Number of independent equations 428 17.7 Choosing equations 431 17.8 Closure 432 18 N-View Computational Methods 434 18.1 Projective reconstruction – bundle adjustment 434 18.2 Affine reconstruction – the factorization algorithm 436 18.3 Non-rigid factorization 440 18.4 Projective factorization 444 18.5 Projective reconstruction using planes 447 18.6 Reconstruction from sequences 452 18.7 Closure 456 19 Auto-Calibration 458 19.1 Introduction 458 19.2 Algebraic framework and problem statement 459 19.3 Calibration using the absolute dual quadric 462 19.4 The Kruppa equations 469 19.5 A stratified solution 473 19.6 Calibration from rotating cameras 481 19.7 Auto-calibration from planes 485 19.8 Planar motion 486 19.9 Single axis rotation – turntable motion 490 19.10 Auto-calibration of a stereo rig 493 19.11 Closure 497 20 Duality 502 20.1 Carlsson–Weinshall duality 502 20.2 Reduced reconstruction 508 20.3 Closure 513 21 Cheirality 515 21.1 Quasi-affine transformations 515 21.2 Front and back of a camera 518 21.3 Three-dimensional point sets 519 21.4 Obtaining a quasi-affine reconstruction 520 21.5 Effect of transformations on cheirality 521 21.6 Orientation 523 21.7 The cheiral inequalities 525 21.8 Which points are visible in a third view 528 21.9 Which points are in front of which 530 21.10 Closure 531 x Contents 22 Degenerate Configurations 533 22.1 Camera resectioning 533 22.2 Degeneracies in two views 539 22.3 Carlsson–Weinshall duality 546 22.4 Three-view critical configurations 553 22.5 Closure 558

    1
    206
    30KB
    2018-05-08
    14
  • python-Vue+Django API电商网站-视频-代码全套

    python Vue+Django实现 商品管理 / 手机注册和登录 用户收藏管理 / 订单管理 购物车管理 / 支付管理 第三方登录 / Sentry错误日志监控 重点讲解RESTFul API知识

    0
    0
    30KB
    2018-05-01
    14
  • 2018最新版Chromedriver-windows和linux两个版本

    python爬虫动态网页必备 Selenium库,但是它是一个自动化测试工具,需要浏览器来配合使用,因为只有安装ChromeDriver,才能驱动Chrome浏览器完成相应的操作。

    1
    234
    30KB
    2018-04-30
    9
  • 《汇编语言》-第三版-王爽-以及课后答案

    第1章 基础知识 1.1 机器语言 1.2 汇编语言的产生 1.3 汇编语言的组成 1.4 存储器 1.5 指令和数据 1.6 存储单元 1.7 CPU对存储器的读写 1.8 地址总线 1.9 数据总线 1.10 控制总线 1.11 内存地址空间(概述) 1.12 主板 1.13 接口卡 1.14 各类存储器芯片 1.15 内存地址空间 第2章 寄存器 2.1通用寄存器 2.2字在寄存器中的存储 2.3几条汇编指令 2.4物理地址 2.516位结构的CPU 2.68086CPU给出物理地址的方法 2.7“段地址×16+偏移地址=物理地址” 的本质含义 2.8段的概念 2.9段寄存器 2.10CS和IP 2.11修改CS、IP的指令 2.12代码段 实验1查看CPU和内存,用机器指令 和汇编指令编程 第3章寄存器(内存访问) 3.1内存中字的存储 3.2DS和(address) 3.3字的传送 3.4mov、add、sub指令 3.5数据段 3.6栈 3.7CPU提供的栈机制 3.8栈顶超界的问题 3.9push、pop指令 3.10栈段 实验2用机器指令和汇编指令编程 第4章第一个程序 4.1一个源程序从写出到执行的过程 4.2源程序 4.3编辑源程序 4.4编译 4.5连接 4.6以简化的方式进行编译和连接 4.71.exe的执行 4.8谁将可执行文件中的程序装载进入 内存并使它运行? 4.9程序执行过程的跟踪 实验3编程、编译、连接、跟踪 第5章(BX)和loop指令 5.1(BX) 5.2Loop指令 5.3在Debug中跟踪用loop指令实现的 循环程序 5.4Debug和汇编编译器masm对指令的 不同处理 5.5loop和(bx)的联合应用 5.6段前缀 5.7一段安全的空间 5.8段前缀的使用 实验4(bx)和loop的使用 第6章 包含多个段的程序 6.1在代码段中使用数据 6.2在代码段中使用栈 6.3将数据、代码、栈放入不同的段 实验5编写、调试具有多个段的程序 第7章更灵活的定位内存地址的 方法 7.1anol和or指令 7.2关于ASCII码 7.3以字符形式给出的数据 7.4大小写转换的问题 7.5(bx+idata) 7.6用(bx+idata)的方式进行数组的 处理 7.7SI和DI 7.8(bx+si)和(bx+di) 7.9(bx+si+idata)和(bx+di+idata) 7.10不同的寻址方式的灵活应用 实验6实践课程中的程序 第8章数据处理的两个基本问题 8.1bx、si、di和bp 8.2机器指令处理的数据在什么地方 8.3汇编语言中数据位置的表达 8.4寻址方式 8.5指令要处理的数据有多长 8.6寻址方式的综合应用 8.7div指令 8.8伪指令dd 8.9dup 实验7寻址方式在结构化数据访问中的 应用 第9章转移指令的原理 9.1操作符offset 9.2jmp指令 9.3依据位移进行转移的jmp指令 9.4转移的目的地址在指令中的jmp 指令 9.5转移地址在寄存器中的jmp指令 9.6转移地址在内存中的jmp指令 9.7jcxz指令 9.8loop指令 9.9根据位移进行转移的意义 9.10编译器对转移位移超界的检测 实验8分析一个奇怪的程序 实验9根据材料编程 第10章CALL和RET指令 10.1ret和retf 10.2call指令 10.3依据位移进行转移的call指令 10.4转移的目的地址在指令中的call 指令 10.5转移地址在寄存器中的call指令 10.6转移地址在内存中的call指令 10.7call和ret的配合使用 10.8mul指令 10.9模块化程序设计 10.10参数和结果传递的问题 10.11批量数据的传递 10.12寄存器冲突的问题 实验10编写子程序 课程设计1 第11章标志寄存器 11.1ZF标志 11.2PF标志 11.3SF标志 11.4CF标志 11.5OF标志 11.6adc指令 11.7sbb指令 11.8cmp指令 11.9检测比较结果的条件转移指令 11.10DF标志和串传送指令 11.11pushf和popf 11.12标志寄存器在Debug中的表示 实验11编写子程序 第12章内中断 12.1内中断的产生 12.2中断处理程序 12.3中断向量表 12.4中断过程 12.5中断处理程序和iret指令 12.6除法错误中断的处理 12.7编程处理0号中断 12.8安装 12.9do0 12.10设置中断向量 12.11单步中断 12.12响应中断的特殊情况 实验12编写0号中断的处理程序 第13章int指令 13.1int指令 13.2编写供应用程序调用的 中断例程 13.3对int、iret和栈的深入理解 13.4BIOS和DOS所提供的 中断例程 13.5BIOS和DOS中断例程的 安装过程 13.6BIOS中断例程应用 13.7DOS中断例程应用 实验13编写、应用中断例程 第14章端口 14.1端口的读写 14.2CMOS RAM芯片 14.3shl和shr指令 14.4CMOS RAM中存储的时间信息 实验14访问CMOS RAM 第15章外中断 15.1接口芯片和端口 15.2外中断信息 15.3PC机键盘的处理过程 15.4编写int 9中断例程 15.5安装新的int 9中断例程 实验15安装新的int 9中断例程 第16章直接定址表 16.1描述了单元长度的标号 16.2在其他段中使用数据标号 16_3直接定址表 16.4程序入口地址的直接定址表 实验16编写包含多个功能子程序的 中断例程 第17章使用BIOS进行键盘输入 和磁盘读写 17.1int 9中断例程对键盘输入的处理 17.2使用int 16h中断例程读取 键盘缓冲区 17.3字符串的输入 17.4应用int 13h中断例程对磁盘 进行读写 实验17编写包含多个功能子程序的 中断例程 课程设计2 综合研究 研究试验1搭建一个精简的C语言 开发环境 研究试验2使用寄存器 研究试验3使用内存空间 研究试验4不用main函数编程 研究试验5函数如何接收不定数量的 参数 附注 附注1Intel系列微处理器的3种工作 模式 附注2补码 附注3汇编编译器(masm.exe)对jmp的 相关处理 附注4用栈传递参数 附注5公式证明

    0
    3011
    16KB
    2018-04-15
    21
  • 四篇优秀毕业设计-基于.net电影院售票系统

    四篇优秀毕业设计-基于.net电影院售票系统 第一篇:基于ASP.NET的电影院售票管理系统 C#+XML 第二篇:.net 电影院售票系统源码 第三篇:asp.net电影院售票系统网站,采用了ASP.NET技术开发,是一款以电影售票为主的网站。 第四篇:.net影院售票系统完整版本源码

    3
    1481
    13KB
    2018-03-28
    50
  • scrapy 分布式爬虫全集

    scrapy 9个G视频 其中包括爬虫入门,虚拟环境搭建,对scrapy的调试,对动态网站的爬取,scrapy与mysql的使用,scrapy-redis分布式爬虫的使用, elasticsearch搜索引擎的使用, scrapyd部署scrapy爬虫。等相关内容

    1
    378
    12KB
    2018-03-17
    17
  • PID控制算法算法C语言描述

    其中有关于pid牧户算法的五个资源 第一个:PID控制算法的C语言实现(完整版),适合简单的PID算法实现。 第二个:主要讲述了模糊PID算法在直流电机控制系统中的应用 第三个:可以直接在TC运行,用模糊控制的方法调试KP、KI、KD参数 第四个:模糊自整定PID控制c代码,三角隶属函数,输出最大隶属,增量式PID输出。 第五个:STM32实现PID算法,很实用,可以参考实际执行机构修改参数即可完成控制!

    0
    241
    12KB
    2018-03-16
    9
  • es6入门课程_第三版_(阮一峰版)_网盘链接

    第1章 ECMAScript 6简介 1 1.1 ECMAScript和JavaScript的关系 1 1.2 ES6与ECMAScript 2015的关系 1 1.3 语法提案的批准流程 2 1.4 ECMAScript的历史 3 1.5 部署进度 4 1.6 Babel 转码器 4 1.6.1 配置文件.babelrc 5 1.6.2 命令行转码babel-cli 6 1.6.3 babel-node 7 1.6.4 babel-register 8 1.6.5 babel-core 8 1.6.6 babel-polyfill 9 1.6.7 浏览器环境 10 1.6.8 在线转换 10 1.6.9 与其他工具的配合 11 1.7 Traceur转码器 11 1.7.1 直接插入网页 12 1.7.2 在线转换 13 1.7.3 命令行转换 14 1.7.4 Node环境的用法 15 第2章 let和const命令 17 2.1 let 命令 17 2.1.1 基本用法 17 2.1.2 不存在变量提升 19 2.1.3 暂时性死区 19 2.1.4 不允许重复声明 21 2.2 块级作用域 22 2.2.1 为什么需要块级作用域 22 2.2.2 ES6的块级作用域 23 2.2.3 块级作用域与函数声明 24 2.2.4 do表达式 27 2.3 const命令 28 2.3.1 基本用法 28 2.3.2 本质 29 2.3.3 ES6声明变量的6种方法 30 2.4 顶层对象的属性 30 2.5 global对象 31 第3章 变量的解构赋值 33 3.1 数组的解构赋值 33 3.1.1 基本用法 33 3.1.2 默认值 35 3.2 对象的解构赋值 37 3.3 字符串的解构赋值 41 3.4 数值和布尔值的解构赋值 41 3.5 函数参数的解构赋值 42 3.6 圆括号问题 43 3.6.1 不能使用圆括号的情况 43 3.6.2 可以使用圆括号的情况 44 3.7 用途 44 第4章 字符串的扩展 49 4.1 字符的Unicode表示法 49 4.2 codePointAt() 50 4.3 String.fromCodePoint() 52 4.4 字符串的遍历器接口 52 4.5 at() 53 4.6 normalize() 53 4.7 includes()、startsWith()、endsWith() 54 4.8 repeat() 55 4.9 padStart()、padEnd() 56 4.10 模板字符串 57 4.11 实例:模板编译 60 4.12 标签模板 62 4.13 String.raw() 67 4.14 模板字符串的限制 68 第5章 正则的扩展 71 5.1 RegExp构造函数 71 5.2 字符串的正则方法 72 5.3 u修饰符 72 5.4 y修饰符 74 5.5 sticky属性 77 5.6 flags属性 77 5.7 s修饰符:dotAll模式 78 5.8 后行断言 79 5.9 Unicode属性类 80 5.10 具名组匹配 81 5.10.1 简介 81 5.10.2 解构赋值和替换 82 5.10.3 引用 83 第6章 数值的扩展 85 6.1 二进制和八进制表示法 85 6.2 Number.isFinite()、Number.isNaN() 86 6.3 Number.parseInt()、Number.parseFloat() 87 6.4 Number.isInteger() 88 6.5 Number.EPSILON 88 6.6 安全整数和Number.isSafeInteger() 89 6.7 Math对象的扩展 92 6.7.1 Math.trunc() 92 6.7.2 Math.sign() 92 6.7.3 Math.cbrt() 93 6.7.4 Math.clz32() 94 6.7.5 Math.imul() 95 6.7.6 Math.fround() 95 6.7.7 Math.hypot() 96 6.7.8 对数方法 96 6.7.9 双曲函数方法 98 6.8 Math.signbit() 98 6.9 指数运算符 99 6.10 Integer数据类型 99 6.10.1 简介 99 6.10.2 运算 100 第7章 函数的扩展 103 7.1 函数参数的默认值 103 7.1.1 基本用法 103 7.1.2 与解构赋值默认值结合使用 105 7.1.3 参数默认值的位置 107 7.1.4 函数的length属性 108 7.1.5 作用域 108 7.1.6 应用 111 7.2 rest参数 112 7.3 严格模式 113 7.4 name属性 115 7.5 箭头函数 116 7.5.1 基本用法 116 7.5.2 注意事项 118 7.5.3 嵌套的箭头函数 121 7.6 绑定this 123 7.7 尾调用优化 124 7.7.1 什么是尾调用 124 7.7.2 尾调用优化 125 7.7.3 尾递归 126 7.7.4 递归函数的改写 128 7.7.5 严格模式 129 7.7.6 尾递归优化的实现 129 7.8 函数参数的尾逗号 132 第8章 数组的扩展 133 8.1 扩展运算符 133 8.1.1 含义 133 8.1.2 替代数组的apply方法 134 8.1.3 扩展运算符的应用 136 8.2 Array.from() 139 8.3 Array.of() 142 8.4 数组实例的copyWithin() 143 8.5 数组实例的find()和findIndex() 144 8.6 数组实例的fill() 145 8.7 数组实例的entries()、keys()和values() 145 8.8 数组实例的includes() 146 8.9 数组的空位 147 第9章 对象的扩展 151 9.1 属性的简洁表示法 151 9.2 属性名表达式 154 9.3 方法的name属性 156 9.4 Object.is() 157 9.5 Object.assign() 158 9.5.1 基本用法 158 9.5.2 注意点 160 9.5.3 常见用途 161 9.6 属性的可枚举性 163 9.7 属性的遍历 165 9.8 __proto__ 属性、Object.setPrototypeOf()、Object.getPrototypeOf() 166 9.8.1 __proto__ 属性 166 9.8.2 Object.setPrototypeOf() 167 9.8.3 Object.getPrototypeOf() 168 9.9 Object.keys()、Object.values()、Object.entries() 169 9.9.1 Object.keys() 169 9.9.2 Object.values() 170 9.9.3 Object.entries 171 9.10 对象的扩展运算符 173 9.11 Object.getOwnPropertyDescriptors() 177 9.12 Null传导运算符 181 第10章 Symbol 183 10.1 概述 183 10.2 作为属性名的Symbol 185 10.3 实例:消除魔术字符串 188 10.4 属性名的遍历 189 10.5 Symbol.for()、Symbol.keyFor() 191 10.6 实例:模块的Singleton模式 192 10.7 内置的Symbol值 194 10.7.1 Symbol.hasInstance 194 10.7.2 Symbol.isConcatSpreadable 195 10.7.3 Symbol.species 196 10.7.4 Symbol.match 197 10.7.5 Symbol.replace 197 10.7.6 Symbol.search 198 10.7.7 Symbol.split 198 10.7.8 Symbol.iterator 199 10.7.9 Symbol.toPrimitive 200 10.7.10 Symbol.toStringTag 201 10.7.11 Symbol.unscopables 202 第11章 Set和Map数据结构 205 11.1 Set 205 11.1.1 基本用法 205 11.1.2 Set实例的属性和方法 207 11.1.3 遍历操作 208 11.2 WeakSet 212 11.2.1 含义 212 11.2.2 语法 212 11.3 Map 214 11.3.1 含义和基本用法 214 11.3.2 实例的属性和操作方法 218 11.3.3 遍历方法 220 11.3.4 与其他数据结构的互相转换 222 11.4 WeakMap 225 11.4.1 含义 225 11.4.2 WeakMap的语法 227 11.4.3 WeakMap示例 228 11.4.4 WeakMap的用途 229 第12章 Proxy 233 12.1 概述 233 12.2 Proxy实例的方法 237 12.2.1 get() 237 12.2.2 set() 241 12.2.3 apply() 243 12.2.4 has() 244 12.2.5 construct() 246 12.2.6 deleteProperty() 247 12.2.7 defineProperty() 248 12.2.8 getOwnPropertyDescriptor() 248 12.2.9 getPrototypeOf() 249 12.2.10 isExtensible() 249 12.2.11 ownKeys() 250 12.2.12 preventExtensions() 254 12.2.13 setPrototypeOf() 255 12.3 Proxy.revocable() 255 12.4 this问题 256 12.5 实例:Web服务的客户端 258 第13章 Reflect 259 13.1 概述 259 13.2 静态方法 261 13.2.1 Reflect.get(target, name, receiver) 262 13.2.2 Reflect.set(target, name, value, receiver) 263 13.2.3 Reflect.has(obj, name) 264 13.2.4 Reflect.deleteProperty(obj, name) 265 13.2.5 Reflect.construct(target, args) 265 13.2.6 Reflect.getPrototypeOf(obj) 265 13.2.7 Reflect.setPrototypeOf(obj, newProto) 266 13.2.8 Reflect.apply(func, thisArg, args) 267 13.2.9 Reflect.defineProperty(target, propertyKey, attributes) 267 13.2.10 Reflect.getOwnPropertyDescriptor (target, propertyKey) 268 13.2.11 Reflect.isExtensible (target) 268 13.2.12 Reflect.preventExtensions(target) 269 13.2.13 Reflect.ownKeys (target) 269 13.3 实例:使用Proxy实现观察者模式 270 第14章 Promise对象 273 14.1 Promise的含义 273 14.2 基本用法 274 14.3 Promise.prototype.then() 278 14.4 Promise.prototype.catch() 279 14.5 Promise.all() 285 14.6 Promise.race() 287 14.7 Promise.resolve() 288 14.8 Promise.reject() 290 14.9 两个有用的附加方法 291 14.9.1 done() 291 14.9.2 finally() 292 14.10 应用 292 14.10.1 加载图片 292 14.10.2 Generator函数与Promise的结合 293 14.11 Promise.try() 294 第15章 Iterator和for...of循环 297 15.1 Iterator(遍历器)的概念 297 15.2 默认Iterator接口 300 15.3 调用Iterator接口的场合 305 15.4 字符串的Iterator接口 307 15.5 Iterator接口与Generator函数 308 15.6 遍历器对象的return()、throw() 309 15.7 for...of循环 310 15.7.1 数组 310 15.7.2 Set和Map结构 311 15.7.3 计算生成的数据结构 312 15.7.4 类似数组的对象 313 15.7.5 对象 314 15.7.6 与其他遍历语法的比较 315 第16章 Generator函数的语法 317 16.1 简介 317 16.1.1 基本概念 317 16.1.2 yield表达式 319 16.1.3 与Iterator接口的关系 322 16.2 next方法的参数 323 16.3 for...of循环 325 16.4 Generator.prototype.throw() 328 16.5 Generator.prototype.return() 334 16.6 yield*表达式 335 16.7 作为对象属性的Generator函数 342 16.8 Generator函数this 342 16.9 含义 345 16.9.1 Generator与状态机 345 16.9.2 Generator与协程 346 16.10 应用 347 16.10.1 异步操作的同步化表达 347 16.10.2 控制流管理 348 16.10.3 部署Iterator接口 351 16.10.4 作为数据结构 352 第17章 Generator函数的异步应用 355 17.1 传统方法 355 17.2 基本概念 355 17.2.1 异步 355 17.2.2 回调函数 356 17.2.3 Promise 356 17.3 Generator函数 357 17.3.1 协程 357 17.3.2 协程的Generator函数实现 358 17.3.3 Generator函数的数据交换和错误处理 359 17.3.4 异步任务的封装 360 17.4 Thunk函数 361 17.4.1 参数的求值策略 361 17.4.2 Thunk函数的含义 362 17.4.3 JavaScript语言的Thunk函数 362 17.4.4 Thunkify模块 364 17.4.5 Generator函数的流程管理 365 17.4.6 Thunk函数的自动流程管理 367 17.5 co模块 368 17.5.1 基本用法 368 17.5.2 co模块的原理 369 17.5.3 基于Promise对象的自动执行 369 17.5.4 co模块的源码 371 17.5.5 处理并发的异步操作 372 17.6 实例:处理 Stream 373 第18章 async函数 375 18.1 含义 375 18.2 用法 377 18.3 语法 379 18.3.1 返回Promise对象 379 18.3.2 Promise对象的状态变化 379 18.3.3 await命令 380 18.3.4 错误处理 382 18.3.5 使用注意点 383 18.4 async函数的实现原理 386 18.5 其他异步处理方法的比较 387 18.6 实例:按顺序完成异步操作 388 18.7 异步遍历器 390 18.7.1 异步遍历的接口 390 18.7.2 for await...of 392 18.7.3 异步Generator函数 393 18.7.4 yield*语句 398 第19章 Class的基本语法 399 19.1 简介 399 19.2 严格模式 403 19.3 constructor方法 403 19.4 类的实例对象 404 19.5 Class表达式 406 19.6 不存在变量提升 407 19.7 私有方法 408 19.8 私有属性 409 19.9 this的指向 410 19.10 name属性 412 19.11 Class的取值函数(getter)和存值函数(setter) 412 19.12 Class的Generator方法 413 19.13 Class的静态方法 414 19.14 Class的静态属性和实例属性 415 19.14.1 Class的实例属性 416 19.14.2 Class的静态属性 417 19.15 new.target属性 418 第20章 Class的继承 421 20.1 简介 421 20.2 Object.getPrototypeOf() 423 20.3 super关键字 423 20.4 类的prototype属性和 __proto__ 属性 429 20.4.1 extends的继承目标 430 20.4.2 实例的 __proto__ 属性 432 20.5 原生构造函数的继承 432 20.6 Mixin模式的实现 436 第21章 修饰器 439 21.1 类的修饰 439 21.2 方法的修饰 442 21.3 为什么修饰器不能用于函数 444 21.4 core-decorators.js 446 21.5 使用修饰器实现自动发布事件 449 21.6 Mixin 450 21.7 Trait 453 21.8 Babel转码器的支持 456 第22章 Module的语法 457 22.1 概述 457 22.2 严格模式 458 22.3 export命令 459 22.4 import命令 462 22.5 模块的整体加载 464 22.6 export default命令 465 22.7 export与import的复合写法 468 22.8 模块的继承 469 22.9 跨模块常量 470 22.10 import() 471 22.10.1 简介 471 22.10.2 适用场合 472 22.10.3 注意点 473 第23章 Module的加载实现 475 23.1 浏览器加载 475 23.1.1 传统方法 475 23.1.2 加载规则 476 23.2 ES6模块与CommonJS模块的差异 477 23.3 Node加载 481 23.3.1 概述 481 23.3.2 import命令加载CommonJS模块 482 23.3.3 require命令加载ES6模块 484 23.4 循环加载 485 23.4.1 CommonJS模块的加载原理 485 23.4.2 CommonJS模块的循环加载 486 23.4.3 ES6模块的循环加载 488 23.5 ES6模块的转码 492 23.5.1 ES6 module transpiler 492 23.5.2 SystemJS 492 第24章 编程风格 495 24.1 块级作用域 495 24.1.1 let取代var 495 24.1.2 全局常量和线程安全 496 24.2 字符串 497 24.3 解构赋值 497 24.4 对象 498 24.5 数组 500 24.6 函数 501 24.7 Map结构 503 24.8 Class 503 24.9 模块 504 24.10 ESLint的使用 506 第25章 读懂ECMAScript规格 509 25.1 概述 509 25.2 相等运算符 510 25.3 数组的空位 511 25.4 数组的map方法 513 第26章 ArrayBuffer 517 26.1 ArrayBuffer对象 518 26.1.1 概述 518 26.1.2 ArrayBuffer.prototype.byteLength 520 26.1.3 ArrayBuffer.prototype.slice() 520 26.1.4 ArrayBuffer.isView() 520 26.2 TypedArray视图 521 26.2.1 概述 521 26.2.2 构造函数 522 26.2.3 数组方法 524 26.2.4 字节序 526 26.2.5 BYTES_PER_ELEMENT属性 528 26.2.6 ArrayBuffer与字符串的互相转换 528 26.2.7 溢出 529 26.2.8 TypedArray.prototype.buffer 531 26.2.9 TypedArray.prototype.byteLength、TypedArray. prototype.byteOffset 531 26.2.10 TypedArray.prototype.length 531 26.2.11 TypedArray.prototype.set() 532 26.2.12 TypedArray.prototype.subarray() 532 26.2.13 TypedArray.prototype.slice() 532 26.2.14 TypedArray.of() 533 26.2.15 TypedArray.from() 533 26.3 复合视图 534 26.4 DataView视图 535 26.5 二进制数组的应用 537 26.5.1 AJAX 537 26.5.2 Canvas 538 26.5.3 WebSocket 539 26.5.4 Fetch API 539 26.5.5 File API 539 26.6 SharedArrayBuffer 541 26.7 Atomics对象 543

    3
    0
    12KB
    2018-03-15
    11
  • 笔耕不辍

    累计1年每年原创文章数量>=20篇
  • 分享精英

    成功上传11个资源即可获取
  • 持续创作

    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 创作能手

    授予每个自然周发布1篇到3篇原创IT博文的用户
关注 私信
上传资源赚积分or赚钱