事件循环核心结构体uv_loop_s结构图 libuv结构体结构图
前段时间时间呢,我写了一个我给鸿星尔克写了一个720°全景看鞋展厅,看大家挺赶兴趣的,当时我是用 Three.js 来写的,但是 JS 实现可能在一些非常非常老旧的机型上兼容性可能没有那么完美。...作者:羽飞 链接:https://juejin.cn/post/6997697496176820255 通过H5实现3D全景是挺平常的事情了,通过three.js可以很容易实现一个全景图。...可以这个链接来查看,three.js来实现的,戳three.js全景图DEMO链接[1]。 其实我们通过CSS3也能实现类似的效果,而且性能上更好,兼容性更好,支持低端机型。...如果想深入了解此CSS 3D坐标系演示的DEMO,源码可以查看这里,链接在此[5]。 说到CSS 3D,肯定离不开CSS3D transform,下面开始学习。...| by Neel Dedhia | Medium | Medium[28] 参考资料 [1] three.js全景图DEMO链接: https://threejs.org/examples/?
/three.min.js"> <script src="Photo-Sphere-Viewer/dist/photo-sphere-viewer.min.<em>js</em>...根据官方示例的代码修改一下即可实现<em>全景</em>浏览的功能。 ---- 柱状<em>全景</em>图 但我写这篇文章并不只是为了推荐一个库,还有我刚趟过的一个坑——如何实现柱状<em>全景</em>图。...通常,<em>全景</em>图片都是用专门仪器拍摄的几乎360° x 180°照片。...真正的<em>全景</em>照片的宽高比应该是2:1 这种照片无法制作360°<em>全景</em>,但是可以退而求其次做个柱状<em>全景</em>图。 例如下面这张图↓ ?
Node.js 进程启动时,首先执行 c / c++ 代码,然后 c / c++ 加载并执行 lib/internal/bootstrap_node.js 并给予一个 process 参数( 运行上下文...) // lib/internal/bootstrap_node.js 概览 // Hello, and welcome to hacking node.js!...exports: 默认值是 {} loaded / loading: NativeModule 状态 _cache: 简单的模块缓存 _source: 模块源码资源 require():...(),源码如下: // bootstrap main module....至此 启动-js部分 已经全部完成,后续模块加载部分,见 Node.js源码解析-require背后 End 启动只是 Node.js 源码的一小部分,除此之外还有大量的内置模块和 c / c++ 源码
在Google上搜索时,我发现了impress.js的存在,与我的设想不谋而合,于是乎……不再自己造轮子,又花了两天时间熟悉使用impress.js来设计幻灯片,效果完全超越了我的预期。 ...impress.js简单来说仅仅是实现了幻灯片的转场特效的框架,虽说将单页限制在框架之内,但所有单页还是需要自己用代码设计。...花了一天探索了下impress.js源码,其实并不复杂,个人感觉收获颇丰,以下阐述我的收获。.../impress.js"> impress().init(); 源码中的init()函数,分析写在注释中 var init = function(...源码简洁明了,并不复杂,作者的本意也是构建一个基础的框架,让使用者自由发挥,正合吾意!
watch.js 源码解读 用麻雀虽小五脏俱全来描述Watch.js比较合适。“观察者”模式是我们在开发的时候经常需要用到的。...使用Watch.js那么我们就可以实现在“每当对象属性改变的时候,执行你的函数”。...虽然有很多其他的库可以实现相同的功能,但是Watch.js却可以不改变你平时书写代码的方式,并且实现属性改变的监听功能。...”修改的时候“观察者”函数会被调用 ex1.attr1 = "other value";` [try demo](http://jsfiddle.net/NbJuh/17/) Watch.js...总结 抛开watch.js的bug不谈,它还是有很多可圈可点的地方。
手写源码 手写源码才是本文的重点,前面的不过是铺垫,本文手写的目标就是自己写一个express来替换前面用到的express api,其实就是源码解析。...本文所有手写代码全部参照官方源码写成,方法名和变量名尽量与官方保持一致,大家可以对照着看,写到具体的方法时我也会贴出官方源码的地址。...express.js对应的源码看这里:github.com/expressjs/e… app.listen 上面说了,express.js只是一个空壳,真正的app在application.js里面,所以..._router = new Router(); } } 复制代码 app.listen,app.handle和methods处理方法都在application.js里面,application.js...[method] 所以我们来看下Router这个类,下面的代码是从源码中简化出来的: // router/index.js var setPrototypeOf = require('setprototypeof
在看 jQuery 源码时,发现了这段注释: //源码5235行 /* * Helper functions for managing events -- not part of the public...Edwards' addEvent library for many of the ideas. */ jQuery.event = { } Dean Edwards 的 addEvent.js...(http://dean.edwards.name/weblog/2005/10/add-event/)库为 jQuery 的事件绑定提供了很多想法,我们就来看下 2005 年的 addEvent.js...console.log(a,'a55') //{0:'111'} b 改变属性,a 也会改变,因为 b 与 a 指向同一地址(b=a) 一、addEvent() 作用: 为目标元素绑定事件(如 click) 源码...最后: 完整代码请看https://github.com/AttackXiaoJinJin/jQueryExplain/blob/master/addEvent.js.html ----
第二篇文章是看了Express的基本用法,更主要的是看了下他的源码:手写Express.js源码 Express的源码还是比较复杂的,自带了路由处理和静态资源支持等等功能,功能比较全面。...从上面两个例子的代码来看,Koa跟Express有几个明显的区别: ctx替代了req和res 可以使用JS的新API了,比如async和await 手写源码 手写源码前我们看看用到了哪些API,这些就是我们手写的目标...lib/application.js这个文件就是我们经常用的Koa类,虽然我们经常叫他Koa类,但是在源码里面这个类叫做Application。...app.createContext对应的官方源码看这里:github.com/koajs/koa/b… context.js 上面的this.context其实就是来自context.js,所以我们先在...Express源码可以看我之前这篇文章:手写Express.js源码 Koa的思路看起来更清晰,Koa本身的库只是一个内核,只有中间件功能,来的请求会依次经过每一个中间件,然后再出来返回给请求者,这就是大家经常听说的
用 Three.js 做这样的一个全景图浏览工具,是再简单不过的事情,只需要几行代码,但却很有用。 那我们就来学一下 Three.js 怎么做全景图浏览吧。...这就是 Three.js 的 3D 场景的创建和渲染成 2D 的流程。 简单回顾了下基础,那全景图改怎么浏览呢?...Three.js 实现全景图浏览 我们创建 3D 场景 Scene: const scene = new THREE.Scene(); 然后设置它的背景,用立方体的纹理来设置,需要分别指定左右上下前后的.../js/three.js"> <script src="....总结 一般的照片只是一个方向的画面,而<em>全景</em>图是上下左右前后 360 度的画面,它能立体的记录拍照位置的场景。 <em>全景</em>图需要专门的工具来浏览,我们可以用 Three.<em>js</em> 来实现。
这个是基于three.js的全景插件 photo-sphere-viewer.js ———————————————————————————————————————— 1、能添加热点; 2、能调用陀螺仪...; 使用方法: 1、这个插件的用法很简单,引入如下2个js <script src="<em>js</em>/photo-sphere-viewer.min.<em>js</em>...container:必填参数,放置<em>全景</em>图的div元素。 autoload:可选,默认值为true,true为自动调用<em>全景</em>图,false为在后面加载<em>全景</em>图(通过.load()方法)。...> <!
对,就是看别人写的JS代码。文档嘛,自然是没有的。 之前也有试过看代码,但项目中N多JS文件,每个JS文件上千行,一行一行的看下来,用不了几分钟就完全晕掉了。...于是,这一次,我决定换一个方式读JS源码。 这个项目中有N个JS文件,我把入口的JS文件拿出来先看,然后我把它里面所有的函数名,都用思维导图写出来,就像这样, ?...看小说一行行看就OK,但读源码的重点,不在于要读完并理解每一行JS代码,而在于通过图表和笔记,理解系统的结构和它们之间的关系。...实际上这也是不可能的,每个大项目中上百个JS文件,每个JS文件上千行、几千行代码,这算起来就十万多行了,哪有时间让你慢慢看完。...推广来说,看项目源码,看前端各种构架的源码,它最大的好处就是可以培养自己的对于代码的“层次感”。
Users/xpp/Desktop/Panorama.png", Panorama) cv2.waitKey(0) cv2.destroyAllWindows() 算法:图像全景拼接是缝合...”两张具有重叠区域的图像来创建一张全景图像。
原来图像技术可以这样子玩》 第二期《来吧,见识科技的力量,无需手动找拍糊的图》 第三期《这种方式打开会ctrl的流量明星cxk,简直就是魔鬼》 第四期《酷炫骚操作,票圈装13神技,极坐标全景图》 第五期...鉴于一对共享一些共同区域的图像,我们的目标是“缝合”它们并创建全景图像场景。 在整篇文章中,我们将介绍一些最着名的计算机视觉技术。...[这里我已经调试好源码并上传到github上面] ? 特征检测和提取 给定一对像上面那样的图像,我们想要把它们拼接起来创建一个全景场景。值得注意的是,两个图像都需要共享一些共同的区域。...queryImg plt.figure(figsize=(20,10)) plt.imshow(result) plt.axis('off') plt.show() 生成的全景图像如下所示
在chrome的开发者模式下观测到不同的全景网站的特点,重点观察了:https://campus-vr.ust.hk/tour.html 在开发者模式下查找源代码的同时还可以simulate 不同设备下的操作...Google Map plugin 这个plugin直接在官方文档中复制源码到tour.xml中 plugin的源码如下: <plugin name="map" devices="html5"...url="googlemaps.<em>js</em>" align="leftbottom" width="400" height="300" x="0" y="0" keep="true... url : 属性需要注意,官方文档直接给的是文档名字,但是在自行生成的vtour文件夹中,googlemaps.<em>js</em>存在于
renderEngine.renderer; //定义一个shader对象 const shader = { //名字必须字段 name: "xxx", //着色器代码中需要与js...,今天分享的内容是ShaderHelper组件中的核心CustomMaterial源码分析。...Effect的实例化 ---- texture与color的初始化比较简,但Eeffect实例化需要三个参数,看下引擎源码: //--------------CustomMaterail.js----...techniques是一个数组,我们接下来看CustomMaterial源码中是怎么创建它的。 4....小结 ---- 本篇的内容有些烧脑,特别是对于像Shawn这种从来不怎么关心底层渲染的人来说在初次读源码完全是一脸的蒙逼。我们暂且不纠结细节,从整体上理清材质系统的框架结构,请看下图: ?
并且当你看过官网(http://cho45.stfuawsc.com/jsdeferred/)的新手引导后就会有种不好好学学就太可惜的感觉了,而只看API和使用指南是无法满足我对它的好奇心的,通过解读源码读透它的设计思想才是根本...本文部分内容将和《JS魔法堂:剖析源码理解Promises/A》中的内容作对比来讲解。 ..._next; }; 《JS魔法堂:剖析源码理解Promises/A》中的官网实现示例是将事件处理函数绑定到当前的Promise实例,而不是新创的Promise实例。...1000); d.canceller = function () { clearTimeout(id) }; return d; }; 刚看到该函数时我确实有点小鸡冻,我们可以将《JS...魔法堂:剖析源码理解Promises/A》的第三节“从感性领悟”下的示例,写得于现实生活的思路更贴近了。
3.isArguments、isFunction、isString、isNumber、isDate、isRegExp、isError这些方法放到一起讲,因为这些方法的的源码实现都是放到了一个each函数中遍历每一个方法名然后实现的布尔值判定...源码: _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {...需要注意的是js数组和函数是对象,字符串和数字不是。...bb6dc3cabae6651b94f69bbd562ff370/page/2.html https://github.com/hanzichi/underscore-analysis/blob/master/underscore-1.8.3.js.../underscore-1.8.3-analysis.js http://www.css88.com/doc/underscore/#isEmpty http://www.css88.com/doc
Vue.js 的源码都在 src 目录下,其目录结构如下: src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms...Vue.js 四、server Vue.js 2.0 支持了服务端渲染,所有服务端渲染相关的逻辑都在这个目录下 ?...注意:这部分代码是跑在服务端的 Node.js,不要和跑在浏览器端的 Vue.js 混为一谈 服务端渲染主要的工作是把组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将静态标记"混合...这个目录下的代码逻辑会把 .vue 文件内容解析成一个 JavaScript 的对象 六、shared Vue.js 会定义一些工具方法,这里定义的工具方法都是会被浏览器端的 Vue.js 和服务端的...Vue.js 所共享的 ?
领取专属 10元无门槛券
手把手带您无忧上云