自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++正则表达式笔记

(2)C++正则匹配实现提取两个指定字符串之间的字符串。最近翻了翻正则表达式的一些资料,做个记录。(3)替换两个字符串之间所有出现的字符。(1)正则匹配两个字符之间的字符串。(1)正则匹配两个字符之间的字符串。3、正则表达式基础语法大全。2、正则表达式语法简介。

2024-02-21 10:35:33 461

原创 关于三维布尔运算的几点思考

三维布尔运算根据三维实体数据结构表达分为CSG布尔运算、Brep布尔运算、三角网格布尔运算等类型。这几种类型算法在不同情境下有不同的优势,根据情况进行选择。但这也不能作为随意选择方案的借口,在不分析实际情况下。CSG和BRep布尔运算能够保留原始几何拓扑信息,适用于各类设计编辑场景,如建模设计软件中。而三角网格布尔运算也是常见和常用的,由于一些因素,当前实体的表达方式就是三角面网格方式,也需要对这些实体进行编辑,这时候三角网格布尔运算是最佳选择方案。

2023-05-28 10:23:32 2336

原创 我的创作纪念日-哈市雪花

文章总是有意义的,是分享传播知识,也是记录自己技术成长的点滴,帮助别人,也方便自己

2023-04-12 18:43:33 1473

原创 几何算法学习实践和应用(二维)

几何算法底层的原理很多是相通的,用到的也都是基础的工具函数,学习和积累非常重要。很多原理可由二维推广到三维,一些复杂三维算法可以分解为二维实现。

2023-03-13 23:34:53 1311

原创 几何算法学习实践(三维)

将个人几何算法学习和实践进行记录,方便自己和有需要的人。学习和实践相结合,建立小项目进行练手,该项目包含几何工具库与图形显示两部分。

2023-03-12 12:41:00 1711 1

原创 cesium中多个3dTiles模型合模展示示例

在cesium ion官网完成多个3dTiles模型的合模示例

2022-06-19 18:41:21 2980

原创 生成业务数据模型图(SQLite + Navicat)

1.前言由于实际要求,往往需要我们提供系统或数据库的业务数据模型,可以利用工具来绘制或生成。2.sqlite + Navicat生成简述下步骤,(如果已有数据库,可忽略该步骤)新建sqlite数据库,当然一个数据库可能有多个表,如果目标数据库有多个表的话,这里新建一个也可以,剩下的再Navicat中继续创建,当然也可以一次性建完。这里我用的DB Browser for SQLite软件。 打开Navicat,文件--》新建连接--》SQLite,然后选择刚刚创建的db文件 在Navica

2022-05-28 23:20:22 3550

原创 navisworks获取元素稳定唯一ID方法研究

1. 前言模型中的构件理论上来说都需要有一个唯一且稳定的ID,如revit中有elementId、uniqueId,IFC中有guid,dwg中有entityId......navisworks中的元素是不是也应该有这样的唯一ID?2. 研究2.1. navisworks apimodelItem.GetHashCode()modelItem.InstanceHashCodemodelItem.InstanceGuid可直接在官方社区搜索相关问题:Navisworks API -

2021-11-21 16:35:13 1836 7

原创 点合并算法的思考

1.写在前面去年因为某项目遇到模型卡顿问题,分析原因发现是模型中点没有进行合并,故而设计了点合并的技术方案,由于某些原因该方案未能实施,仅仅是方案,放在技术方案堆里,以一篇文档形式。平时的积累尤其重要,尝试更优,加之日积月累,会有比较大的进展和进步,技术如此,工作也一样。平时面试偶尔也会以该题目为背景问一下面试者,看看思路怎样,有想法还不错的,也有不知所措的...好了,闲扯到这里,开始吧。2.思路2.1.方案一ifcOpenShell是将点的hash作为key,建立map,map&l

2021-09-13 23:07:13 1358

原创 关于控制程序内存的几点思考

写在前面 控制系统内存是常见的一个话题,一般三维设计软件内存控制的普遍较好,当然一方面是开发时间较长,投入较多,当然另一方面也是相应的开发团队技术经验较丰富,有较好的系统架构和内存管理机制。当然也会有一些软件或产品内存控制的不好,用户使用体验较差。 博主混迹于CSDN已有数年,也有一些经验,适逢周末惬意,闲暇时光中进行一些总结记录以供自己和需要的人参考。思考系统逻辑较复杂,运行时内存占用较高且不稳定,该怎么办?博主认为所谓系统逻辑复杂本是个伪概念,一个系统确实有...

2021-08-22 17:21:57 890

原创 矩阵求逆的简单记录

写在前面话说第一次完整的编写矩阵求逆函数是在写结构力学求解器时候,那时候用的是初等变换法,效率较低,不过那时候还没顾得上效率,求解器没有开发完整,记得只支持连续跨简支梁求弯矩(不记得这个术语还准确不...),好吧,是时候引出正文了。4X4转换矩阵求逆方法求逆矩阵方法很多,效率不一,而研究矩阵数据结构的设计就可以是一个领域了,怎么样占用内存小?怎么样运算效率高,当然本文不涉及这些的研究,有兴趣可以自行搜索学习这方面知识。https://zhuanlan.zhihu.com/p/500.

2021-07-22 23:19:22 1976 1

原创 记录Camtasia剪辑视频操作

1. 写在前面由于实际需要,需要剪辑视频,真是得各种为了生计的技艺都得略知一二,想起前段时间还给破解重置了我那破旧的笔记本密码~真是一言难尽。不过说实话,初始不知工具便,熟知才知是真香。很方便,提高工作效率和质量。本文记录自己使用Camtasia软件来分隔剪辑视频的操作,供自己和有需要的人参考。2. 正文2.1. 准备待分隔剪辑视频(以.mp4格式为例)、Camtasia 2018。2.2. 开始比如博主选择视频的 2min 23s到7min 29s ..

2021-06-06 13:41:36 1050 2

原创 VS检测内存泄漏C++程序

1. 写在前面最近在优化程序,节点紧,事情多,写的急...总之就是程序性能有问题,处理大模型就遇到瓶颈了。咋办?重构优化喽。首先,博主把程序中主要占内存或需要频繁使用的对象都用工具类统一进行内存申请、使用和释放,具体的:可以复用的且需要用来进一步处理计算的对象统一管理起来,方便复用,减少重复处理,所谓GetOrCreate是也 需要大量的申请、使用和释放的对象统一管理起来 需要周期性频繁使用的对象统一管理起来,这样也可以减少内存申请和释放 一次性处理占内存大的时候,那就分批处理 对象池也

2021-06-02 23:57:59 1434 3

原创 非常简单的解决VS调试符号加载慢的问题

方案很多博客都提到的清空符号缓存不知道是否真实有效?当然权威的还是参考官方文档,介绍的很清晰,但并没有提到这一点可以提高符号加载效率!而且可以根据介绍判断出具体的这些设置的作用,也可以初步判断出清空符号缓存没有多大实际作用。参考在调试器中设置符号 (.pdb) 和源文件 - Visual Studio | Microsoft Docs...

2021-05-29 10:05:38 2774

原创 猜想:string的compare是非线程安全的

写在前面之前碰到过map.find死循环的情况:记录使用map遇到的很奇怪的问题,map find()陷入死循环现在是同样的程序,也发生了程序“停滞”(即内存占用没有变化,CPU占用高,程序实际像死锁一样)!哎还是绕不开string的compare,无论是string本身的还是strcmp,而多线程情况下使用都可能会“死循环” “假死锁”,展开猜测string的compare(包括strcmp)是非线程安全的其他关于C++ stl string的线程安全性问题http://

2021-05-24 18:33:36 830 1

原创 zlib解压缩zip/gzip使用总结

写在前面zlib库很好用,包括一些前端/ios库都集成了该库用于解压缩相关,本文根据作者实际使用做个简单的总结。正文使用zlibwrap库进行解压缩,该库对zlib做了封装,提供简洁的接口BOOL ZipCompress(LPCTSTR lpszSourceFiles, LPCTSTR lpszDestFile, bool bUtf8 = false);BOOL ZipCompress(std::vector<LPCTSTR> lpszSourceFiles, LPCTST

2021-05-22 14:03:34 1729

原创 C++字符串转为大写/小写

说在前面最近紧急处理bug时候,想进行C++的字符串大小写转换,发现好像之前没有用到过?!,顺带说一下C#的是真的方便~,其实并不是没有,而是之前真的没有用过,那么需要用了,就查查吧,实践测试一下,有多种方法。正文有多种方法,可以使用C语言标准库函数toupper,tolower 以及对应的unicode版本 twoupper,twolower 可以使用C++标准库中的_strlwr_s, _strupr_s 以及对应的unicode版本 _wcslwr_s, _wcsupr_s 可

2021-05-22 13:45:54 7514

原创 感慨万千,洒一洒:当代渺小一份子的感悟

最近一次接近理想的状态是在大三大四时候,学习,读书,出去玩,跑步,还有每周五晚的逛超市,只为便宜的水果和格瓦斯。印象最深刻的莫过于在图书馆自习的时光,对之前欠下的学习债务系统性的自学,对将要考试的课程做复习,对将要上课的章节做预习,甚至还会复习下刚刚上过的课程,现在为什么成为程序猿也和那段时间有关系,借来fortran程序设计这本书,学习,编程,还借了计算程序力学和袁驷老师的结构力学求解器2,当然后两本没有系统性的进行学习,满足好奇心也是很舒服的,大概也是因为这些活动都有志...

2021-05-10 17:50:10 928 4

原创 混淆后导致Revit2021不能正常加载插件

1.问题用.NET Reactor混淆dll后导致Revit插件不能正常加载,好吧,问题发生了,那就先分析下吧;用相同的混淆设置,Revit2020的插件可以加载,那么初步判断是混淆设置的原因,继续验证猜想~不混淆dll,发现Revit2021可以正常加载dll,看来是混淆设置的问题,而且这个问题在Revit2021中是存在的,那么怎么解决?2.解决过程此过程记录博主分析解决该问题的过程,会涉及到一些知识点,如果读者时间有限,可以跳到解决方案一章尝试,如果问题还不能解决,则可参考该过

2021-03-21 22:01:44 2008

原创 微软glTF-SDK代码示例及源码研究

上一篇:GLtf读写库的初步研究1.glTF-SDK现状及问题1、接口使用较为方便;有简单示例;2、研究源码及示例,仅支持连续的addAccessor(),即连续的add绑定同一bufferView的Accessors,比如很多个mesh,(1)只能统一获取所有的indices(positions、uvs)再连续的addAccessories,绑定到一个indices的bufferView上;然后再绑定positions的,其次再绑定uvs...,这样流程不太 方便,占内存较大;(2)对于每

2021-03-11 23:10:12 2187 3

原创 Revit坐标系概念深入理解及应用:内部点、原点、项目基点、测量点、共享坐标系、地理坐标及之间关系和衍生概念操作(详细)

1. 概述 Revit 提供了多种方法来定义模型的关联环境。包括内部点、原点、项目基点、测量点、共享坐标系、地理坐标以及与定位概念相关的的距离限制、多模型协作、项目北、正北等概念;这些概念多而复杂,相互之间又有关联性,常常让人不知所措,继而横眉冷指,更甚者口吐着夹杂Revit的芬芳...而如果恰好是工作上遇到这方面问题了,那么简直是一种外外表到灵魂的拷问和云深不知处的茫然。 当然,Revit设置这样“复杂”而灵活的坐标系概念是有其特定历史意义的,满足于各种应用场景,不限于...

2021-02-27 13:35:38 5558 7

原创 GLtf读写库的初步研究

1.背景最近需要写gltf,预研了下相关的库,不得不说还是比较多的,毕竟GLtf的目标:“3D领域的JPEG”已经被行业比较广泛的接受和参与建设了;2.简要总结1、 KhronosGroup/glTF-CSharp-Loaderhttps://github.com/KhronosGroup/glTF-CSharp-Loader备注:竟然是根据gltf specification schema文件生成代码....和我们的XX需求场景一样2、微软的glTF-SDKhttps://githu

2021-02-21 23:03:54 1535 1

原创 3dTile技术研究-小结

上篇:3dTile技术研究-概念详述(10)Instanced 3D Model1.背景又看了一遍cesium的3D Tiles格式规范,看的过程中简单记录知识点,进行简单总结。由于总结记录的是“只言片语”,详细内容还请参考博主关于3dTiles的文章。如需要看详细的文章,请参考博主的3dTiles系列文章(文章末尾有链接)。2. LOD技术的研究1、Cesium官方,包括子章节https://github.com/CesiumGS/3d-tiles2、3DTile 的geometr

2021-02-18 17:00:39 1221 3

原创 3dTile技术研究-概念详述(10)Instanced 3D Model

上篇:3dTile技术研究-概念详述(7)Batched 3D Model下篇:3dTile技术研究-概念详述(8)Feature Table3dTile技术研究-概念详述(9)Batch Table1. 内容(Contents)概述(Overview) 布局(Layout) Padding 标头(Header) Feature Table Semantics Instance semantics Global semantics Instan.

2021-02-17 18:42:51 813

原创 3dTile技术研究-概念详述(8)Feature Table

上篇:3dTile技术研究-概念详述(7)Batched 3D Model下篇:3dTile技术研究-概念详述(9)Batch Table1. 内容(Contents)概述(Overview) 布局(Layout) Padding JSON header Binary body 样例实现(Implementation example) Property reference2. 概述(Overview)Feature Table是tile的二进制内容体的一部分,它描述了渲

2021-02-16 23:46:53 1392

原创 3dTile技术研究-概念详述(7)Batched 3D Model

1. 内容(Contents)概述(Overview) 布局(Layout) Padding 标头(Header) Feature Table Semantics Feature semantics Global semantics Batch Table Binary glTF Coordinate system File extension and MIME type 样例实现(Implementation example) Property ref

2021-02-16 11:44:16 1506 4

原创 3dTile技术研究-概念详述(9)Batch Table

1. 内容(Contents)概述(Overview) 布局(Layout) Padding JSON header Binary body 扩展(Extensions) 样例实现(Implementation example) 属性引用(Property reference)2. 概述Batch Table是一个tile的二进制内容体的一个组件(组成部分),并且它包含了tile中的每一个对象(per-feature)特定于程序的属性。这些属性在运行时被查询,为了声明式样式和

2021-02-16 02:01:50 2256

原创 3dTile技术研究-概念详述(6)

上篇:3dTile技术研究-概念详述(5)1. 特定扩展数据和应用程序附加数据(Specifying extensions and application specific extras)3D Tiles定义了扩展数据,允许对基础规范扩展新功能,同时也为了特定于应用程序的元数据而定义了额外数据。1.1 扩展(Extensions)扩展数据允许以新功能来扩展基础规范。这个可选的extensions字典属性可以添加到任意3D Tiles JSON对象中,其中包含了扩展数据的名字和扩展的特定对象。

2021-02-16 00:28:11 812

原创 3dTile技术研究-概念详述(5)

上篇:3dTile技术研究-概念详述(4)1. 空间数据结构(Spatial data structures)3D Tiles包含Hierarchical Level of Detail (HLOD)的概念是为了优化渲染空间数据。一个tileset由一颗由root和childrentiles递归构成的树组成,树可以被组织成不同的空间数据结构。在运行时引擎是通用的,会渲染tileset定义的任何树。可以组合使用任意tile格式和细化方式( refinement),为了更灵活的支持异构的数据集,详.

2021-02-15 21:25:53 1177

原创 3dTile技术研究-概念详述(4)

1. Tileset JSON3D Tiles使用一个主要的tileset JSON文件作为定义的整个tileset的入口点。入口tileset和外部的tileset JSON文件都不需要遵循特定的命名规范。下面是Canary Wharf使用的tileset的一个片段(可以在这里看到完整文件tileset.json):{ "asset" : { "version": "1.0", "tilesetVersion": "e575c6f1-a45b-420a-b172-6449

2021-02-15 11:21:27 919

原创 3dTile技术研究-概念详述(3)

上篇:3dTile技术研究-概念详述(2)1.1 Tile JSON一个tile JSON对象由以下属性构成。下面的示例展示了一个没有叶子节点的tile。{ "boundingVolume": { "region": [ -1.2419052957251926, 0.7395016240301894, -1.2415404171917719, 0.7396563300150859, 0, 20.4

2021-02-14 23:21:23 873

原创 3dTile技术研究-概念详述(2)

上篇:3dTile技术研究-概念详述(1)1. Transforms1.1 Tile transforms为了支持局部坐标系,比如,这样位于一个城市tileset中的一个建筑的tileset就可以定义在它自己的局部坐标系中,同样在建筑云中的点云tile可以定义在其自己的坐标系中。每个tile都有一个可选的transform属性。transform属性是一个4x4的仿射矩阵,以列优先顺序存储,它从tile的局部坐标系转换到tile的parent坐标系中,而对于root tile来说就是转换到t

2021-02-14 14:07:40 1910 1

原创 3dTile技术研究-概念详述(1)

上篇:3dTile技术研究-概述1. TilesTiles由元数据构成,这些元数据:用来判定一个tile是否需要渲染、引用可渲染的具体内容和包含所有children tiles的数组。1.1 Geometric error将Tiles构造为合并了详细层次结构(HLOD)的树,以便在运行时客户端实现需要确定一个tile是否足够详细以进行渲染,以及是否紧接着由较高分辨率的children tiles细化。一个实现将考虑最大允许的屏幕空间误差(SSE),该误差以像素为单位。一个tile的geo

2021-02-13 22:05:24 1968 1

原创 3dTile技术研究-概述

1.介绍3D Tiles是流式传输大规模异构地理空间数据集的开放标准;3D Tiles is designed for streaming and rendering massive 3D geospatial content such as Photogrammetry, 3D Buildings, BIM/CAD, Instanced Features, and Point Clouds. It defines a hierarchical data structure and a set of

2021-02-13 12:11:03 2297 1

原创 3dTile技术研究-开篇

1.背景1976年,Clark[1]提出了细节层次(Levels of Detail,简称LOD)模型的概念,认为当物体覆盖屏幕较小区域时,可以使用该物体描述较粗的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。 LOD(level of details)技术已经很早的被提出,并且广泛应用了,尤其是在游戏领域和大规模场景加载显示的领域;而3dTile技术是LOD技术的一种实现,也是一种规范,其独立于任何3D客户端,是一种通用的专注于渲染显示数据的规范...

2021-02-12 22:57:22 1743

原创 获取Revit项目基点坐标系

Revit中坐标系类型多而复杂,下面是获取项目基点坐标系的方法,ElementCategoryFilter siteCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_ProjectBasePoint);FilteredElementCollector collector = new FilteredElementCollector(doc);IList<Element> siteElements = coll

2021-02-12 12:50:22 1211

原创 Y UP 和 Z UP的概念

1.问题图形学中y up和z up的概念也会让人困惑,这是什么?为什么要这样?2.概念所有的3D工具都包含一个具有X、Y和Z轴的三维环境。在这些工具中,X轴方向是相同的,即在前视图时从左到右的水平线。然而, 不同的 3D 工具可能对Y轴和Z轴的朝向有不同的解释。一些3D 工具是 Y-Up的, 即 Y 轴时竖直方向的;而 其他的3D工具是 Z-Up的, 即 Z 轴时竖直方向的。不同的3D工具关于竖直方向(up方向)是Y轴还是Z轴有不同的定义 ,由上图可知,如果是Z-UP的.

2021-02-11 10:43:22 1406

原创 AABB包围盒和OBB包围盒区别

1.问题图形学中经常出现AABB包围盒、OBB包围盒、外接球等,这些概念初次接触时有点容易混淆;2.概念AABB:Axis-Aligned Bounding Box,轴对齐包围盒;OBB:Oriented Bounding Box,有向包围盒;包围球:外接球;OBB比包围球和AABB更加逼近物体,能显著减少包围体的个数3.其他类似的概念还有凸包、最小外接轮廓等,有兴趣的可以查阅相关资料。...

2021-02-11 09:46:22 8450 1

原创 cmd方式获取进程启动命令行commandline

1.问题一些场景下需要获取进程的详细信息,如命令行commandline等,该怎么操作?2.方案使用wmic获取 服务显示名 为 "notepad.exe" 的caption、commandline信息,wmic process where caption="notepad.exe" get caption,commandline /value显示详细信息也可以这样,process where name="notepad.exe" list full大家可能有疑问了.

2021-02-11 09:12:48 2471

原创 点云LAS解析研究

1.背景由于需要初步研究了下LAS点云格式的解析,记录如下,版本为1.0、1.1、1.2、1.3、1.4这几个版本,有些库并没有支持所有这些版本,比如laspy、libLAS(仅处于维护状态,由PDAL库代替)对1.3和1.4没有很好地支持,而PDAL库是开源的,跨平台的,且对这几个版本的LAS格式都能支持,2.PDAL介绍这里摘录介绍,How is it different than other tools?LAStoolsOne of the most common o

2021-01-30 23:21:34 1074 2

BooleanUtils.cs

轮廓布尔运算,以点为单位,注重原理,未考虑优化,可用空间分布二叉树减小求交点计算次数

2019-08-11

WPF实现笑脸表情动画

WPF实现简单地旋转笑脸动画,可以作为入门参考知识。小记

2018-04-13

空空如也

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

TA关注的人

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