RED

JavaScript图形实例:Canvas API

∥☆過路亽.° 提交于 2020-07-26 08:08:50
1.Canvas概述 Canvas API(画布)用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图(bitmap)。 要使用HTML5在浏览器窗口中绘制图形,首先需要在HTML文档中新建一个canvas网页元素。一般方法如下: <canvas id="myCanvas" width="400" height="300"> 您的浏览器不支持canvas! </canvas> 上面这段代码,表示建立了一个名为“myCanvas”的canvas网页元素,它就是一块画布,该画布的宽为400,高为300。有了这块画布,我们就可以使用JavaScript编写程序,利用Canvas API在这块画布上绘制图形。如果所用浏览器不支持Canvas API,则就会显示canvas标签中间的文字——“您的浏览器不支持canvas!”。 每个canvas网页元素都有一个对应的context对象(上下文对象),Canvas API定义在这个context对象上面。为了在canvas上绘制图形,必须先得到一个画布上下文对象的引用。为此,使用JavaScript编写程序段如下: var canvas = document.getElementById('myCanvas'); // 取得网页中的画布对象 var ctx = canvas.getContext(

聊聊无人驾驶汽车的发展历史(三)——DARPA无人驾驶挑战赛

◇◆丶佛笑我妖孽 提交于 2020-07-25 23:25:11
  20世纪无人驾驶技术取得了很大的成就,从早期的无线电遥控到无线电导引,再到为车辆装配传感器、计算系统和控制系统等,赋予车辆“视觉”、智能和自动化的能力,使车辆能够在结构化的道路上实现自动驾驶,无人驾驶技术的发展方向也从最初的公路智能化转到了车辆智能化上来。但是到本世纪末,无人驾驶技术的研究还只是集中在大学实验室或汽车公司的研究院中,并未能形成一个真正的产业。进入21世纪,事情开始起了变化,而这一切都得益于美国国防部高级研究计划局,以下简称“DARPA”举办的一个无人驾驶车挑战赛——DARPA Grand Challenge。正是因为这个比赛,吸引了以Google为代表的全世界ICT公司和硅谷创业公司加入到智能汽车的研发中来,由此也引起了传统汽车产业“智能化”的变革,诞生了一个上万亿的产业。 DARPA 大挑战赛    DARPA组织这个挑战赛时并没有想到会产生如此大的影响,他们当时只是想通过公开比赛的方法找到为军方打造马上可投入批量生产的智能车的技术,以及激励众多工程设计高手对智能车开发过程中遇到的一些列难题进行攻关研究。而这一切,都要从一场战争说起。   2001年,美国深陷阿富汗战争,为了应对路边炸弹引起的大量伤亡,美国国会通过了一项法案:在2015年,军方三分之一车辆必须进行无人驾驶。直到2002年,由军方资助的无人车项目已经进行了十多年,却只造出又笨又慢的样车

类的第一个元素的CSS选择器

蹲街弑〆低调 提交于 2020-07-25 17:48:32
问题: I have a bunch of elements with a class name red , but I can't seem to select the first element with the class="red" using the following CSS rule: 我有一堆元素的类名是 red ,但是我似乎无法使用以下CSS规则选择 class="red" 的第一个元素: .red:first-child { border: 5px solid red; } <p class="red"></p> <div class="red"></div> What is wrong in this selector and how do I correct it? 该选择器有什么问题,我该如何纠正? Thanks to the comments, I figured out that the element has to be the first child of its parent to get selected which is not the case that I have. 多亏了这些评论,我才知道该元素必须是其父元素的第一个子元素才能被选中,而事实并非如此。 I have the following structure, and this

LaTeX公式手册(全网最全)

三世轮回 提交于 2020-07-25 08:28:15
本手册全新编排版正在施工,感兴趣的戳 这里 ! 参考维基百科的 数学公式教程 参考 Cmd Markdown 公式指导手册 本文为 MathJax 在 Markdown 环境下的语法指引。 如何插入公式 \(\LaTeX\) 的数学公式有两种:行中公式和独立公式(行间公式)。行中公式放在文中与其它文字混编,独立公式单独成行。 行中公式可以用如下方法表示: $ 数学公式 $ 独立公式可以用如下方法表示: $$ 数学公式 $$ 函数、符号及特殊字符 声调 / 变音符号 \dot{a}, \ddot{a}, \acute{a}, \grave{a} \({\displaystyle {\dot {a}},{\ddot {a}},{\acute {a}},{\grave {a}}}\) \check{a}, \breve{a}, \tilde{a}, \bar{a} \({\displaystyle {\check {a}},{\breve {a}},{\tilde {a}},{\bar {a}}}\) \hat{a}, \widehat{a}, \vec{a} \({\displaystyle {\hat {a}},{\widehat {a}},{\vec {a}}}\) 标准函数 指数 \exp_a b = a^b, \exp b = e^b, 10^m \({

Vue学习之路第四篇:v-html指令

本小妞迷上赌 提交于 2020-07-25 01:48:37
上一篇我们讲解了两种方式,把Vue对象的数据展示在页面上: 1、插值表达式 2、v-text指令 但是如果我们展示的数据包含元素标签或者样式,我们想展示标签或样式所定义的属性作用,该怎么进行渲染,比如展示内容为:<h1>这是一个h1元素内容</h1>。我们先用插值表达式和v-text尝试一下。 <body> <div id="app"> <p v-cloak>{{ msg }}</p> <p v-text="msg"></p> </div> <script type="text/javascript"> var vm = new Vue({ el : "#app" , data : { msg : "<h1>这是一个h1元素内容</h1>" } }); </script> </body> 运行结果,如下: 结论:插值表达式和v-text指令被直接解析为了字符串元素。对此Vue提供了另外一个指令:v-html <div id="app"> <p v-cloak>{{ msg }}</p> <p v-text="msg"></p> <p v-html="msg"></p> </div> <script type="text/javascript"> var vm = new Vue({ el : "#app" , data : { msg : "<h1>这是一个h1元素内容</h1>"

Java虚拟机最多支持多少个线程?

白昼怎懂夜的黑 提交于 2020-07-24 23:03:33
作者:miracle1919 http://www.importnew.com/10780.html McGovernTheory在StackOverflow提了这样一个问题: Java虚拟机最多支持多少个线程?跟虚拟机开发商有关么?跟操作系统呢?还有其他的因素吗? Eddie的回答: 这取决于你使用的CPU,操作系统,其他进程正在做的事情,你使用的Java的版本,还有其他的因素。我曾经见过一台Windows服务器在宕机之前有超过6500个线程。当然,大多数线程什么事情也没有做。一旦一台机器上有差不多6500个线程(Java里面),机器就会开始出问题,并变得不稳定。 以我的经验来看,JVM容纳的线程与计算机本身性能是正相关的。 当然了,你要有足够的本机内存,并且给Java分配了足够的内存,让每个线程都可以拥有栈(虚拟机栈),可以做任何想做的事情。任何一台拥有现代CPU(AMD或者是Intel最近的几代)和1-2G内存(取决于操作系统)的机器很容易就可以支持有上千个线程的Java虚拟机。 如果你需要一个更精确的答案,最好是自己做压测。 Charlie Martin的回答: 这里有很多的参数(可以设置)。对于特定的虚拟机,都会有自己的运行时参数。(最大线程数)一定程度上由操作系统决定的:底层的操作系统要给线程提供哪些支持?施加哪些限制?虚拟机使用的是原生的操作系统的线程还是red

search(12)- elastic4s-聚合=桶+度量

折月煮酒 提交于 2020-07-24 09:29:58
这篇我们介绍一下ES的聚合功能(aggregation)。聚合是把索引数据可视化处理成可读有用数据的主要工具。聚合由bucket桶和metrics度量两部分组成。 所谓bucket就是SQL的GROUPBY,如下: GET /cartxns/ _search { " size " : 2 , " aggs " : { " color " : { " terms " : { " field " : " color.keyword " } } } } ... " aggregations " : { " color " : { " doc_count_error_upper_bound " : 0 , " sum_other_doc_count " : 0 , " buckets " : [ { " key " : " red " , " doc_count " : 4 }, { " key " : " blue " , " doc_count " : 2 }, { " key " : " green " , " doc_count " : 2 } ] } } 上面这个例子中是以color.keyword为bucket的。elastic4是如下表现的: val aggTerms = search( " cartxns " ).aggregations( termsAgg( "

TypeScript类型检查机制

会有一股神秘感。 提交于 2020-07-24 03:35:25
类型检查机制:TypeScript编译器在做类型检查时,所秉承的一些原则。 作用:辅助开发,提高开发效率。 一、类型推断 不需要指定变量的类型(函数的返回值类型),TypeScript可以根据某些规则自动地为其推断出一个类型。 1,基础类型推断 let a // let a: any let b = 1 // let b: number let c = [] // let c: any[] let c2 = [1] // let c2: number[] // 设置函数默认参数 // 确定函数返回值的时候 // let function1: (x?: number) => number let function1 =(x=1)=> x+1 // x=>number //function1返回number类型 2,最佳通用类型推断 // 最佳通用类型推断 // 从多个类型推断出一个类型的时候,尽可能的兼容类型 let arr = [1, null ] // let arr: (number | null)[] 3,上下文类型推断 上面两种类型推断都是从右向左的推断,也就是根据表达式右侧的值推断表达式左边变量的类型。还有一种类型推断是从左到右。这就是上下文类型推断。 上下文类型推断通常发生在事件处理中。 window.onkeydown = (event)=> { console

查看nginx版本号的几种方法

久未见 提交于 2020-07-24 03:30:40
1、 查看服务器上安装的nginx版本号,主要是通过nginx的-v或-V选项,查看方法如下图所示 -v 显示 nginx 的版本。 -V 显示 nginx 的版本,编译器版本和配置参数 [root@zq ~]# nginx -V nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx

[译]Vulkan教程(24)索引buffer

半城伤御伤魂 提交于 2020-07-24 00:57:06
[译]Vulkan教程(24)索引buffer Index buffer 索引buffer Introduction 入门 The 3D meshes you'll be rendering in a real world application will often share vertices between multiple triangles. This already happens even with something simple like drawing a rectangle: 你在真实世界应用程序中要渲染的3D网格,常常会在多个三角形之间共享顶点。这在绘制简单的矩形的时候就出现了: Drawing a rectangle takes two triangles, which means that we need a vertex buffer with 6 vertices. The problem is that the data of two vertices needs to be duplicated resulting in 50% redundancy. It only gets worse with more complex meshes, where vertices are reused in an average number of 3