javascript
文章平均质量分 82
2000年的六年级三好学生
建筑领域信息化大搬砖家
展开
-
cesium+threejs结合实现GIS+BIM大场景-1
概述前面已经花费了许多内容去介绍BIM如何搭建了。其实我不太担心抄袭,让有一些节省成本的老板想自己搞引擎的。(你搞去~看是不是能节省成本!)那我们一步步说。有源码放源码。搭不出来说明你基础不好了。首先Cesium入门准备。先下载吧。从这里可以找到:下载Cesium中文网:http://cesium.xin/wordpress/archives/28.html,当然官方最新版一定也要搞一个:https://cesium.com/platform/cesiumjs/此处插播广告。有B原创 2021-04-30 15:53:42 · 6397 阅读 · 3 评论 -
Revit的顶点法线及threejs渲染圆弧面的渐变亮度
本文主要用于分享基于Revit的法线理论,导出模型后让threejs呈现立体真实的效果。Revit的顶点法线及threejs渲染圆弧面的渐变亮度。法线有什么用的?没有法线能否成模型?可以的,没有法线,模型几何信息照样是完成的,把它送到threejs里面渲染没有问题,但是效果却让人很失望,没有法线,整个模型会成为一个白模一样没有立体感,配合再好的光照也显示不出亮光面和暗光面。这个时候,你可以简单的使用mesh.computeVertexNormals()来解决问题,这是threejs自带的一个计.原创 2021-03-15 20:01:50 · 2007 阅读 · 0 评论 -
javascript 如何从大数组里根据ID快速查找
经常会遇到一些场景,比如把一个很大的对象保存于数组中,数组长度很长,遍历次数又多,消耗的时间比较久。这个对象内有个ID字段是GUID或者UID,反正能保证它唯一。作为都一名老程序员首先想到的是先排序,再二分法。瞬间优化提上去。但是javascript的字符串比较是个痛点,排序需要比较,二分查找的时候又需要比较。当然,如果主键是整数,建议还是排序再按二分法。于是我另辟蹊径做了个尝试,有些心得记录一下。首先看看在大数组中常规的遍历效果: var f = function(id) {原创 2020-08-13 09:06:12 · 3484 阅读 · 1 评论 -
javascript web worker的使用方法
假如已经有了一个main.js文件。需要要使用worker去分担主线程的压力,你可能 需要异步下载,需要解析一些数据,那你首先创建一个worker.js文件。main.js需要做这件事:function workerStart(){ let worker = new Worker("worker.js");var download_url="http://you-download-url"; worker.postMessage({url:download_url}); //向worke原创 2020-08-06 15:55:04 · 1057 阅读 · 0 评论 -
JSON.parse反序列化与split的效率对比
最新在封装自己的BIM模型浏览器,定义一个符合自己需求的轻量BIM模型文件。其中有一个问题,当构件数量达到数十万,顶点数量达到亿级,JSON序列化与反序列化的效率实在让人难以接受。在某些场合,JSON对象跟字符串都能符合需求。例如一个THREE.Vector3的构造,中间文件的数据,可以通过'[242,224,2465]',也可以通过'342,224,2465'来表达。var jsonst...原创 2019-05-06 20:22:39 · 2344 阅读 · 0 评论 -
javascript的异步传递
异步这东西很令人讨厌啊,尤其是对我一个Java和C#的程序员来说,经常直来直往的冲进坑里。各种各样的异步回调这里就不枚举了。自定义一般使用promise实现,这里举例直接用setTimeout。比如下面段代码,会输出什么呢: for (var i = 0; i< 10; i++){ setTimeout(() => { c...原创 2019-11-08 09:21:07 · 469 阅读 · 0 评论