自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 arcgis js 动态绘制白膜

arcgis动态绘制白膜。

2024-04-12 14:23:42 451

原创 js录制屏幕并输出视频

借助navigator,需要注意的是navigator.mediaDevices.getDisplayMedia需要在https使用,若部署环境为http,则会导致navigator.mediaDevices.getDisplayMedia为undefined。time为录制的时长,若时长为一秒则time值为1000。

2023-10-09 15:31:00 658

原创 arcgis js 缓冲区分析(GP服务)

arcgis文档中的有提供缓冲区的接口 geometryService,但要4.19后版本才提供案例中使用的版本为4.16,因此这里的缓冲区分析借助gp工具。

2023-09-16 00:48:22 799 1

原创 JavaScript 数据结构

链表是一种动态的数据结构,不同于数组的是,链表分配内存空间的灵活性,它不会像数组一样被分配一块连续的内存。链表的灵活性在于它的每个元素节点分为两部分,一部分是存储元素本身,另一部分是指向下一个节点元素的引用。当要插入数据时,把上一个节点的向下指针指向新数据节点,新数据节点的向下指针指向原有数据。但是链表不像数组那样可以直接通过索引立刻定位,只能通过遍历。

2021-08-23 16:00:26 226

原创 threejs 效果合成器(EffectComposer)

用于在three.js中实现后期处理效果。该类管理了产生最终视觉效果的后期处理过程链。 后期处理过程根据它们添加/插入的顺序来执行,最后一个过程会被自动渲染到屏幕上。构造函数EffectComposer( renderer 例子outlinePassoutlinePass方法如下:function initEffectComposer(){ composer = new THREE.EffectComposer( renderer ); const renderPass = new TH

2021-08-17 16:56:24 1643 3

原创 threejs Point

利用point实现雪花下落的效果const amount=500;const radius=150;function addSnow1(){ for(let i=0 ;i<amount;i++){ vertex.x=(Math.random()*2-1)*radius; vertex.y=(Math.random()*2-1)*radius; vertex.z=(Math.random()*2-1)*radius; vertex.toArray(positi

2021-08-13 16:52:33 602

原创 threejs 实例化网格(InstancedMesh)

实例化网格(InstancedMesh)一种具有实例化渲染支持的特殊版本的Mesh。你可以使用 InstancedMesh 来渲染大量具有相同几何体与材质、但具有不同世界变换的物体。 使用 InstancedMesh 将帮助你减少 draw call 的数量,从而提升你应用程序的整体渲染性能。当前的实现需要InstancedMesh和其它3D物体间不共享材质。其构造函数,如图实现方式:function testInstanceMesh(count){ //100万 卡顿 if(!coun

2021-07-26 14:40:41 2755

原创 Cesium.js 根据经纬度 获取高程信息

由api可知,通过sampleTerrain,可实现获取高程信息,如图同时,通过异步加载形式,获取return的数据function getHeigthByLngLat11(lng, lat ){ let positions = Cesium.Cartographic.fromDegrees(lng,lat);//经纬度转为世界坐标 //异步函数 return new Promise((resolve, reject)=>{ new Cesium

2021-07-21 20:35:05 2928 2

原创 threejs LOD

threejs中提供了LOD可实现根据与相机的distance,从而实现远处减面的操作通过addLevel ( object : Object3D, distance : Float )将不同精度的对象,add到lod中,distance为到摄像机的距离,具体方法如下const x=500; const y=500; const z=500; const geometry = [ [ new THREE.CylinderGeometry( R, R,30 ,30,30 ), 20

2021-07-15 19:05:55 1800 3

原创 threejs 添加几何模型

添加cube,若不添加纹理则将{map:texture }改为{color:0xffff00}function addTexCube(mesh){ let texture = new THREE.TextureLoader().load( mesh.url ); let geo=new THREE.CubeGeometry(mesh.data.width,mesh.data.height, mesh.data.long); let mat=new THREE.MeshLambertMateri

2021-07-05 17:09:43 484

原创 百度地图 图层

百度地图图层线轨迹图层 LineTripLayer 基础线图层SimpleLineLayer飞线图层 FlyLineLayer基础面图层 ShapeLayerThreejs图层 ThreeLayer波纹点 RippleLayer波纹点2D效果 RippleLayer波纹点3D效果 GroundRippleLayer图层在添加图层之前,需要先初始化图层管理器,从而将图层添加到图层管理器中初始化MapVGL容器对象,用来管理各可视化图层对象。var view = new mapvgl.View({

2021-06-04 17:29:56 2343 1

原创 threejs 裁剪

设置渲染器中的localClippingEnabled为true,即renderer.localClippingEnabled = true;//设置为可剪裁对于模型的material,如let material = new THREE.MeshLambertMaterial( { color: colorToHex(meshData.Color[0]), flatShading: THREE.SmoothShading, clippingPlan

2020-05-20 16:20:52 1527 1

原创 Three.js加载Json 拾取模型

js加载json文件window.onload = function (){ let url = "data/test.json"; let request = new XMLHttpRequest(); request.open("get", url);/*设置请求方法与路径*/ request.send(null);/*不发送数据到服务器*/ request.onload = function () {/*XHR对象获取到返回信息后执行*/ if (request.status =

2020-05-19 11:21:33 2583

原创 HTML5 canvas 实现图片的缩放与平移

定义所需要的变量var canvas=document.getElementById("myCanvas");var canvasDraw=canvas.getContext("2d");var startPointX=0;//起始点 xvar startPointY=0;//起始点 yvar imgX=0;//设置img在的位置var imgY=0;//var imgX1=0;...

2020-03-10 17:15:10 2842 2

原创 HTML5 canvas 动态绘制

HTML5 <canvas> 标签用于绘制图像,但<canvas> 元素本身并没有绘制能力,需使用脚本来完成实际的绘图任务。<canvas id="myCanvas" width="500" height="500" style="background: aliceblue;left:200px;top:200px;position: absolute;"&gt...

2020-03-06 10:19:45 1137

原创 js实现div拖动

这里对于鼠标覆盖input时,使得拖动失效,因此通过对input绑定onmouseover事件,获取鼠标经过的标签 var inputName; boxid.onmouseover = function (event) { inputName = event.target.name;//鼠标每经过一个元素,就把该元素赋值给变量el }获取所需拖动的divva...

2019-12-23 12:01:04 183 1

原创 threejs动态加载div标签

divid为标签的id值,为了方便后续操作,htmlstr为需要添加的标签文本,position为标签的物体坐标function addLabel(divid,htmlstr,position) { var addDivDom = document.createElement('div'); div1 = addDivDom; var bodyDom = document...

2019-10-15 18:38:56 3740 5

原创 angular与TimelineMax实现进度条的动态加载(js)

这里进度条的样式采用bootstrap提供的进度条,定义进度条所需的数据,如:$scope.simulationProgressData = { width: 1, show: false, dayList: ‘’, left:50, };因进度条中含有多个不同的数据,因此将所需要显示的数据存入dayList,使用ng-repeat将dayList中所有的数据进行显示 <div ng-...

2019-10-15 09:50:39 683 1

原创 three.js实现obj模型爆炸

由于obj模型是一个有多个mesh组成的组,而不是mesh,因此通过改变obj模型中mesh即children的位置,可实现模型爆炸。通过在控制台输入console.log(model.children)查看,如图首先获取模型中心坐标,由于在设置模型的位置信息时,将模型的中心的设置为(0,0,0),因此这里直接获取(0,0,0)作为模型中心坐标。var modelWorldCenter=n...

2019-04-16 16:36:38 3977 3

原创 JavaScript 字符串操作

JavaScript中字符串常用的操作方法charAt():获取字符串索引值处的字符,索引值从0开始indexOf():返回指定字符第一次出现的索引值lastIndexOf():返回指定字符最后一次出现的索引值substring():根据索引值截取字符串,索引值只能为正数slice():同样用于截止字符串,且可为负数split():根据指定分隔符分割字符串replace():将字符串...

2019-04-15 15:27:08 1117 1

原创 threejs实现贴花效果

事件监听部分: window.addEventListener( 'resize', onWindowResize, false ); moved = false; orbitControls.addEventListener( 'change', function () {//鼠标移动? moved = true; } ); window.addEventL...

2019-04-08 14:48:18 2282 1

原创 Three.js加载obj+mtl(OBJLoader2)

官方案例:添加链接描述方法实现:function addObjNew(objDef){//新版本写法 var objLoader = new THREE.OBJLoader2(); var callbackOnLoad = function ( event ) { model=event.detail.loaderRootNode;//获取模型 model.children.for...

2019-03-27 10:13:14 6936 5

原创 three.js 加载drc文件

将obj文件压缩成drc格式,可大大减小其大小。若已有编译好的draco_encoder.exe,可通过使用命令行压缩:draco_encoder.exe -i “文件路径名” -o “输出的文件路径名”。在加载drc文件时,需要借助DRACOLoader.js,且同一文件夹下需存在draco_decoder.js文件function addModeldrc(name){//加载drc文件 v...

2019-03-26 21:19:41 3397 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除