自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (8)
  • 收藏
  • 关注

原创 关于投影矩阵的理解记录

计算机图形学投影矩阵理解

2023-01-18 11:38:40 9

原创 cesium原生的雨水涟漪特效

基于cesium的地表雨点波纹渲染特效实现效果

2022-12-09 15:58:21 188 1

原创 cesium自定义geometry动态和透明

cesium自定义geometry,添加了任意向量场或者波浪,可以设置震动幅度,波长和速度,可以设置面片的透明度,还可以切换点线面三种表达方式。

2022-11-22 08:48:03 186 2

原创 cesium中绘制面片

在cesium平台上绘制面片,可以实现颜色的rgb随高度渐变,网格间隔数,网格大小,高度范围自定义,并且使用样条曲线公式进行了平滑处理,可自定义样条数量,实现任意阶数的二维样条曲面自动构建。

2022-11-14 16:45:29 166

原创 Cesium和Three融合之第一人称加模拟太阳光加模型加载

Cesium和Three融合场景的一次尝试

2022-08-12 17:31:41 422 10

原创 Cesium原生积雪特效

经过一段时间的弯路和努力,终于作成了积雪特效,Cesium原生,兼容超图api,后面剩余的就是调参数啦。

2022-04-13 16:17:01 1089 1

原创 cesium3dtiles自定义shader的实现之三

实现了纯手写算法的上下左右移动灯带,又想折腾一下纹理,怎么样让3dtileset有移动纹理呢,于是又改了一下着色器,shader表示:没有我不能做的,小case哈哈,实现效果如下:好玩好玩,在被着色器虐了千万遍以后,总算是领略到一点点shader的可爱之处啦。...

2021-11-24 11:45:53 3824 2

原创 cesium3dtiles自定义shader的实现之二

之前的是光带上下移动,觉得还不太好,想尝试下光带左右移动,于是成这样的效果了:还要继续优化效果,很有意思。

2021-11-22 15:37:11 589 3

原创 cesium3dtiles自定义shader的实现之一

cesium自定义的shader实现改变3dtiles显示,感觉还行吧。但纯粹是误打误撞的,瞎调的参数,shader真是个神奇的东东啊。

2021-11-19 15:21:17 4478 4

原创 记录一些学习资料

按照《3D》书中的资源链接,在此整理一些学习资料,后续更新,所有的书籍或者文章看起来都挺耗费时间,只是列入书单,因为许久之前的书单正在阅读,等阅读完后才能提上日程:Real-Time Rendering :http://www.realtimerendering.com/Interactive Computer Graphics还没找到Opengl Shading language 已经下载pdf,还没看有个网站:http://www.neubert.net/...

2021-10-06 11:46:31 106

原创 《3D Engine Design for Virtual Globes》第四章笔记

第四章属于基础理论中的最后一章,大致且完整第介绍了球面绘制算法的简洁版本。其中包括椭球体的三角格网曲面细分,并将书中提倡的多次迭代方法和传统的圆心角细分、cube细分方法进行了对比。指出提倡方法的好处,为了便于理解,我自己实验了一下该方法,多次迭代效果见博客链接:用四面体中点三角网迭代法进行椭球体曲面细分的实践还包括shading(渲染部分),包括椭球体贴纹理,混合黑暗夜景球纹理和白天纹理实现白天黑夜不同渲染,主要经线和纬线的高亮显示实现方法。最后又加入了一个ray casting细分方法,该方法的核

2021-10-06 11:12:24 103

原创 cesium自定义材质之动态发光电子围栏

  作为对最近研究cesium材质自定义shader的测试,做了几个电子围栏效果,感觉不太对劲,可能颜色没调整好,但因为是刚开始介入的试验,总体来说还是比较满意。

2021-09-24 20:49:54 1554 7

原创 用四面体中点三角网迭代法进行椭球体曲面细分的实践

按照《3D Engine Design for Virtual Globes》书上4.1.1和4.1.2中介绍的方法,使用webgl从头到尾撸一波,效果如下(录制gif分辨率问题请忽略其中阴影线):迭代层数为0(原始四面体):迭代次数为1:迭代次数为2:迭代次数为3:迭代次数为4:书中说到4已经可以了,但是我觉得到5还是有区别,更加圆,但是5以后确实看不到什么区别了,迭代次数为5:方法大致思路是:1.用四个点绘制一个四面体:2.对四面体每条边取中点投影到椭球体上,对于每个三角

2021-08-28 13:30:56 166

原创 js输出数组全排列代码

/** 输出字符串全排列* 例如:* 入参:abc* 出参:abc acb bac bca cab cba* */function main() { let ttt=getquanpailie("abcd"); console.log(ttt);}function getquanpailie(str) { let strlist=[]; for(let i=0;i<str.length;i++){ strlist.push(str[i]

2021-08-01 13:40:32 310

原创 垂直滚动条挤占子元素宽度的解决方法

html如下所示:假设子元素的高度超过的父元素的自定义高度,那么父元素会出现垂直滚动条,但是这里的垂直滚动条会占用子元素的原本的宽度空间,导致子元素内部的元素排列混乱,解决这个问题的方法:.father{overflow-y:overlay;}这样就可以了,简单吧,正因为简单,所以要记录下来,防止以后忘记了。...

2021-07-27 17:13:09 370 1

原创 vue forceupdate强行刷新组件

先记录,如果我在一个页面里面用到了类似el-checkbox并且绑定了v-model,然而这个model所属绑定的对象是动态生成的,也即是说,该对象的并不是在data中定义过的,于是vue会出现一种坑爹情况:也就是你更新了model,而页面却没有任何改变,原因在于vue没有监测该对象,所以这里使用 this.$forceUpdate();在model改变后强行让vue刷新一遍。...

2021-06-25 15:05:05 378

原创 Cesium开源water材质和粒子效果示例代码研究

文章目录关于本文的说明水特效水特效示例代码水特效属性设置说明水特效实际应用代码火特效火特效实现代码位置的设置重力(Gravity)的控制粒子喷射间歇的强度的控制其他属性设置总结感想关于本文的说明  最近看到国内一位cesium大牛的博客,讲材质material(材质)的,于是对照源码看了下,发现很有研究的意义,首先,源码的项目搭建用的是dojo,所有的样式业务绘制前端都是良好分离,关键是不存在多份拷贝,方便调试,相较于傻瓜式且过度模块化封装的vue而言,这点好很多,不过这些不是本文的重点,本文涉及到的水

2021-05-30 07:50:38 1804

原创 读书笔记随感

看《3D Engine…》一书突然冒出来一个问题,为嘛顶点出现缓冲区而Uniform就没有,可能有些引擎为了优化啥的针对后者建立了缓冲区,但少,为什么呢?后来一想,估计是在应用中顶点是很多的而后者是在逐顶点渲染中保持不变的很少数量,所以才这样的吧,建立缓冲区的好处是可以建立索引,然后减少每个顶点的开销,估计是这样吧。...

2021-04-27 18:47:02 47

原创 《3D Engine Design for Virtual Globes》3.5.1节 学习笔记

  opengl标准参照网页:https://www.khronos.org/registry/OpenGL-Refpages/gl4/  书中3.5.1节中记录了VertexBuffers的一些实现。在C#的示例代码OpenGlobe中以VertexBuffer类存在,抽象类,书中列举了一张图对比VertexBuffer和IndexBuffer:  都是从SystemMemory中读取或写入原始二进制数据,区别是前者没有Datatype,后者有,在示例代码中,datatype有两种UnsignedS

2021-04-26 08:29:31 223

原创 cesium加载超图iserver发布的map对其中子layer实现单独控制显隐的实现

  使用超图的iserver发布了多个map图层,每个map中包括多个layer子图层,然后我们尝试使用iClient For WebGL去加载这些图层,于是使用SuperMapImageryProvider去加载单独的map,需求是既能够单独控制map的显隐,也能够单独控制layer的显隐。  单独控制map显隐的方法是加载完成后设置图层的show属性即可,立即生效。然而单独控制其中layer的显隐,试了试其中的setLayerStatusParameters方法,发现虽然能够实现,然而却不能立即生效

2021-04-22 16:25:25 741

原创 关于el-tree左侧展开指示小图标自定义的方法

在el-tree中,其左侧有个小小的指示是否折叠的图表,要是想自定义这个图标,又能用它原来的动画效果,怎么办呢?这里只需要指定el-tree的icon-class属性为我们自定义的class名称,然后我们在自定义的class中写css样式,类似这种: background:url(".*****.svg/png/..."); width:16px; height:10px; padding:0px; box-sizing:

2021-04-19 14:22:38 2433

原创 设置前端元素失去焦点的方法记录

假如在前端vue界面中有一个元素,假设是checkbox吧,被点击后自动获取焦点,只读属性document.activeElement指向该元素,然而要想让它失去焦点,除非点击一个别的能自动获取焦点的元素,比如input之类,要不然就无法做到,好像这些能自动获取焦点的元素是有什么优先权似的,凌驾于其他千千万万普普通通的div至上,且占座完后还不礼貌地让开,真是不够绅士。为了让它能够文明一点,有个小小的方法就是,在其他普通的div中,定义tabindex,随便定义其值是多少,于是在你需要让这些自以为是的家伙

2021-03-12 15:53:42 1234

原创 Object.prototype.toString研究

使用Object.prototype.toString方法判断function是否为方法。比如:function f(){}console.log(Object.prototype.toString.call(f);以上代码则会打印:[Object Funtion]之所以不用:f.toString(),是因为后者会重写对应的toString方法,实际上大多数js对象都会重写该方法,比如,方法本身的toString方法重写后则直接输出方法内容本身。function fn(){consol

2020-12-31 18:39:19 173

原创 一次闭包缓存示例程序理解记录

闭包缓存功能程序理解分析偷空看一本讲Javascript的书,里面有一个关于用闭包记录函数缓存的程序。第一次看过去发现绕得很,本来想大致在头脑中留个印象就直接放过去,等以后要用再回头理解,但后来觉得还是认真消化一下比较好,于是稍微分析了一下,在此记录理解过程。程序选自《Secrets of the JavaScript Ninja》示例代码5.14Function.prototype.memoized=function (key) { this._values=this._values||{};

2020-12-28 19:50:32 52

原创 cesium莫名其妙报render normalize错误问题解决

  这又是一次依靠直觉解决bug的经历,由于不会吹牛皮,所以一直从事一线开发,bug排查,扫坑工作,名副其实的搬砖一枚,哈哈,虽然刚开始很累,说出来也没觉得高大上,感觉技术也没什么提升,但是正是由于没多少人愿意做,反而有个自由自在没多少人指手划脚的环境,时间久了,倒是内心乐意起来,日积月累,竟然形成了一种排查bug的直觉,或者说是第六感吧,已经多次从中受益,起到事半功倍的效果。本文提到的bug即为其中之一,错误如下图所示:  从表面上来看这是一个参数错误带来normalize(归一化)操作无法进行下去的

2020-08-18 11:59:18 1960

原创 《计算机图形学》第四版练习题——BresenHam算法适配所有斜率情况

  阅读《计算机图形学》接触到bresenham画线算法,该算法的核心是用精确的化简后结果衡量每次递增单元格后另一个方向要不要相应递增,书中列举了斜率m绝对值小于1的情况算法,本文完善书中代码使之适配所有斜率情况。代码如下:#include <stdlib.h>#include <math.h>#include <Windows.h>void drawpixel(int x, int y){ HDC hdc = GetWindowDC(GetDesktopW

2020-05-21 08:01:56 978

原创 openlayer加载本地kml的方法

openlayer官网上有kml加载显示的方法:openlayer官网加载kml示例只是其中url是相对前端服务器根目录路径:然而开发过程中出现需要加载本地文件的需求,本来是想通过上传ftp曲线救国,但是考虑到现在很多浏览器放弃了对ftp的支持,故而放弃ftp思路,决定直接选择本地kml文件加载。  由于直接使用file://协议会出现跨域问题,所以使用js的fileReader方式读取...

2020-04-14 16:23:51 1935

原创 openlayer加载wfs图层的地址和坐标系说明

openlayer加载wfs图层的地址说明如果我们把wfs图层发布在geoserver上,那么大多数情况下会生成一个发布地址:http://ip:port/geoserver/工作区名称/ows?service=WFS…openlayer加载时后面也要填补上,这里对后面填补的内容说明一下:http://ip:port/geoserver/工作区名称/ows?service=WFS&am...

2020-02-21 11:05:00 801

原创 新建vue项目关于eslint的几点说明

安装npm,nodejs,vue-cli这些不讲,这里记录的是后面用命令行新建vue项目的几点注意,否则后面麻烦。cmd命令行定位到要创建项目的文件夹下,然后输入vue init webpack ”项目名称“,命令行会提示一些选项:总之,关于eslint(代码规范格式)和test(测试)这些都不要安装,除非大公司有要求,如果这里安装了,到idea项目中有代码检查(eslint),全是红色...

2020-02-17 16:22:15 2017

原创 关于不定积分的一点思考

有时候看关于高数的课程发现以前困扰自己的好多问题现在还是困扰,可是那些课程里的老师都没有仔细说这些,好像那是显而易见的。以前上大学时候也没在意直接记下来了,现在翻开来就觉得很烦躁,于是觉得进行一个能给自己交代的推导。第一个:可能觉得没什么必要,但是这个问题有时候确实让我感到奇怪。还有一个问题,就是好多初等函数的积分公式可以直接把积分中的df(x)转换成f(x)的导数再乘以dx,如下所示:...

2020-02-10 21:26:30 433 4

原创 将geoserver从tomcat发布移到使用其原始安装目录发布的操作步骤记录

  以前在服务器上部署geoserver,都是先安装然后从其安装目录下拷贝webapp内容放到tomcat目录下的webapp文件夹中,最近服务器上对应盘掉了恢复不过来,掉的盘正好时tomcat目录所在盘,要是搁在以前的做法是将geoserver重新安装一遍然后重复以上步骤,但问题是好多图层都得重新发布,虽然已经备份了图层和相关style文件,但是总得一个个配置,着实麻烦,后来一想,既然原始geo...

2019-12-23 11:15:53 210

原创 《算法导论》实践1-实践工程搭建

  最近工作之余开始学习《算法导论》,这本书涉及内容偏理论,又难啃,所以经过深思熟虑,决定现阶段暂不去关注其中定理证明,基本概念这一块,因为对自己目前用处不大,这一遍过《算法导论》的目标是将其中列举的算法逐一用C++实现。  从本文开始记录实践过程,也好有大家的督促,本文记录实践项目工程搭建:用vs新建一个C++控制台应用程序,命名IntroductionToAlgorithm,然后新建一个筛选...

2019-12-09 17:36:25 107

原创 GeoServer Style配置☞为点图层设置图标并根据属性过滤设置其多个最大最小比例尺范围等级

文章目录SLD整体介绍简介配置参考自动化配置工具及其局限性为点图层设置图标根据图层其中一个属性过滤设置多个比例尺范围SLD整体介绍简介  ** SLD是一种标记语言,全称Styled Layer Descriptor,也就是图层样式描述(不好意思,翻译水平有限,看懂就行了),它是一种基于XML的标记语言,GeoServer中的样式支持SLD。**配置参考  geoserver官网上有关...

2019-11-14 13:35:11 830 1

原创 雾特效的改进

之前介绍的雾特效是线性雾(见博客:https://blog.csdn.net/wqy248/article/details/89675159#comments),后来我改动了一下,使雾的浓度呈指数增长,目的是更加逼真。其他都不变只是雾因子的计算方式稍作修改,原来的:float f=(depthcolor.r-0.22)/0.2;改成:float f=1.0-pow(2.71828,0.0-...

2019-11-06 14:09:32 219 8

原创 一次Vue中computed没有触发的原因排查经历

  vue中computed计算属性可以用来绑定动态变量,而且它可以实时刷新,并且也可以在watch中监控,所以本人很喜欢用这个东西,一般把需要随data中变量一起变化的属性全部放在这里面,data中只定义互相独立互相不影响的变量,这样可以极大地减少重复变量的定义,使代码结构清晰,也便于排查错误。  然后最近出现了一个问题,就是我在computed中定义的一个动态变量没有在相关属性发生变化后触发...

2019-11-01 17:53:55 23956 3

原创 Vue怎么在程序初始化时从后台读取数据加载全局变量

  vue项目有时候需要在所有页面mounted之前从后台接口读取数据来初始化全局变量。但是奈何所有页面的mounted都是异步同时调用,而读接口操作通常也是异步返回promise,这样就不免会出现mounted时读接口操作还没有进行完这种情况,所以我想最好有个机制能解决这个问题,让所有读接口初始化全局变量的工作在mounted之前进行,而这种机制应该对读接口是否同步异步没有要求,即使异步也能保证...

2019-10-15 16:35:02 6682

原创 element-ui bug踩坑:input不能放到el-form中,不然造成莫名其妙的路由跳转,在el-form中还是用el-button好了

在一个el-form中写入一个input button 点击以后页面自动刷新,因为路由发生了跳转,应该是element-ui的一个bug,将input移出el-form问题解决,以下是触发路由跳转页面刷新的页面写法(vue)<el-form ><input type="image" src="***" ></input></el-form>...

2019-10-13 09:31:54 668 1

原创 Cesium聚簇实现-kdbush类实现

上一篇讲了kdbush实现原理,本篇看下kdbush源码,了解其算法具体实现。kdbush是一个开源js库,github地址:https://github.com/mourner/kdbush/开发者除了开发了该库,还开发了另外几个空间搜索库,包括rbush,rbush-knn,geokdbush,相关的原理说明请参考:http://www.sohu.com/a/137533865_64276...

2019-09-04 08:45:44 2161

原创 js闭包及var和let对闭包的作用

js闭包及var和let对闭包的作用为了便于理解,本文用一个例子程序来体现js闭包和var、let变量声明对所谓闭包的作用。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></hea...

2019-08-25 19:05:59 777

原创 Cesium聚簇实现-kdbush原理

Cesium聚簇实现-kdbush源码剖析文章目录问题说明KDbush库的分块重排序算法说明KDbush库的查找范围点算法说明矩形框范围查找圆形范围查找  上一篇文章通过调试发现Cesium实现点聚簇过程中一个bug,从中猜测其实现聚簇核心代码在kdbush类中,本文展开kdbush类查看它是如何实现点聚簇效果的。问题说明  假设二维平面中有10个点,分别为ABCDEFGHIJ,如下图所示...

2019-08-25 19:05:22 2278

drawball.html

使用书中介绍的四面体中点投影迭代法对椭球体进行三角格网曲面细分,从而绘制一个椭球体,程序中加入了光照和鼠标拖动旋转,方便用户查看效果,直接运行html即可查看运行效果。

2021-08-20

drawsinx.zip

本代码参照《计算机图形学》中对称方法在纯C++窗口程序中绘制sinx周期曲线。其中drawSinx类为核心绘图类,winmain为主窗口程序。

2020-05-20

js颜色从蓝色到红色渐变.txt

提供一个颜色类,输入RGBA参数,alpha可以不输入。该颜色类有一个静态函数生成从蓝色到红色的渐变颜色数组,传入参数为数组元素个数。

2019-06-10

基于DEM的淹没区域随时间推演程序

基于DEM的淹没区域随时间推演程序,该程序生成一个能表达淹没区域范围随时间变化的地图(tif格式),说明见博客:https://blog.csdn.net/wqy248/article/details/87856722 https://blog.csdn.net/wqy248/article/details/81119550

2019-02-21

cesium跨域加载问题

解决Cesium访问数据跨域问题,数据使用tomcat部署在服务器上。

2019-02-20

project方法实现矢量要素的平移msbuilder

附件是一个arcgis批处理工具,用于实现矢量要素的平移,使用project-defineproject方法,供大家参考

2018-09-27

中国建筑物点状shp

中国建筑物点状shp,包含在中国境内主要建筑物点状矢量数据

2018-08-30

洪水风险实时分析与制图系统

本项目属于全国重点地区洪水风险图二期项目中的子课题之一。目的通过 实时洪水分析,实现对洪水的实时演进模拟,以实时地理空间表达的方式 描述某一时刻洪水的态势、洪水会如何行进,会造成什么样的影响。 • 相比传统的洪水风险图成果编制,系统具有动态、实时,即算即得。方案 可以实时进行参数调整,模拟洪水动态过程,实现洪水动态信息的表达

2018-08-30

空空如也

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

TA关注的人

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