自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 平面与平面相交算法杂谈

空间平面方程:空间两平面如果不平行,那么一定相交于一条空间直线,空间平面求交有多种方法,本文进行相关讨论。

2025-02-13 19:21:55 1062

原创 关于精度话题的杂谈

浮点值的存储、运算都可能会带来精度损失,了解精度损失背后的机制原因方便我们更好的了解什么情况下会发生精度损失、什么情况下精度损失较大,以及思考怎么避免或减少精度损失。

2025-02-09 17:50:18 678

原创 点(线)集最小包围外轮廓效果赏析

作者基于递归迭代求解实现点集的最小外轮廓计算,在CGLib库中实现,已集成于CGViewer,可联系作者试用,欢迎提出宝贵意见。下图为CGViewer中绘制、计算和显示效果,

2025-02-06 21:35:30 397

原创 两种精度较高的三点定圆算法

化繁为简,追求数学公式简洁之美往往能保持较高得计算精度。上述算法实现已集成进博主开发得CGLib库中,效果请参考微信公众号,欢迎关注交流。瞅瞅迷你CAD可以长什么样?开发一款迷你CAD专注于图形几何、数据处理、并行计算技术,欢迎交流。

2025-01-24 20:00:00 419

原创 【ODA】有办法获取Revit构件的BRep形式的几何数据吗?

有些时候可能需要获取rvt构件的轮廓或面数据(BRep数据),进行统计分析、计算处理或造价算量等应用,有办法获取吗?

2024-12-29 20:14:26 569

原创 QT中使用OpenGL function

QT做界面编程很方便,QT+OpenGL的使用也很方便,因为QT对原生的OpenGL API进行了面向对象化的封装。有些时候我们需要使用原生的OpenGL API,这在QT中也很方便,该怎么做呢?

2024-12-29 19:56:29 620

原创 CGAL配置和编译记录

CGAL开源库值得学习和研究,在配置编译CGAL过程中遇到了若干坑,记录一下,方便自己和需要的人。

2024-12-20 20:30:00 1128

原创 图形几何之美系列:线段集合中提取轮廓

以前用过相关的库,忘记名字了,记得是构造了TopoPolygonTree,可以获取最大外轮廓,以及构成该最大外轮廓的其他轮廓,而内部轮廓是以树的形式表示,每个树节点是一个轮廓,树节点的深度(node.deep % 2 == 0?outer : inner)代表其是外轮廓还是内轮廓。重新研究实现,进行代码的测试和问题修改,简单记录如下。

2024-12-18 18:19:19 953

原创 网格剖分算法 & 铺装填充算法效果

原图--》提取轮廓线--》计算最小外包轮廓--》网格剖分--》铺装填充。奇奇怪怪的图形几何算法,欢迎交流。

2024-12-17 17:52:29 381

原创 图形几何之美系列:铺装算法效果赏析

调整tile的尺寸和铺装范围,像更加精美的艺术图案,可以作为logo或图标,赋予了艺术和数学之美~图案变得更具艺术感~电视机?一切皆可铺装,像纹理填充一样。嘿嘿,不咋炫酷的轮廓,也变得更加艺术,色彩之美跃然于眼眸~狗子像穿了一件精心织就而成的纹理衣饰,变得抽象起来~轮廓铺装:地板铺装、墙砖铺砖、吊顶铺装、图案填充。可以用铺装算法,使得设计和艺术变得更有创造力。你知道怎么设置地砖排布吗?有一块布料,怎么填充好看的纹理?

2024-12-14 21:43:52 245

原创 调试技巧:托管代码完全调试

底层用C++实现,用C++/CLI封装,在.NET项目中去调用,开发丰富的应用,这是一种很常见的混合编程模式。那么怎么在.NET开发应用时实现完全调试呢?出现bug的时候能够调试定位问题,包括应用层面、封装层面和底层C++实现。

2024-12-13 21:30:00 179

原创 项目使用bullet库编译时遇到Error LNK2001的解决方案

bullet库作为物理引擎提供很强大的功能,其目标是游戏场景的物理分析,包括碰撞、动力等方面,具有广泛的应用。参考上述步骤执行,目的是编译bullet库、编译项目时该宏的定义保持一致,因为btScalar会被bullet导出接口的变量使用,如btVector3、btVector4等,避免项目对该变量的理解和bullet编译时赋予的意义不一致。

2024-12-02 19:31:21 714

原创 图像处理 之 凸包和最小外围轮廓生成

最小包围轮廓之美一起来欣赏图形之美~

2024-11-18 23:13:08 488

原创 图形几何之美系列:二维凸包艺术赏析

凸包话题包括二维凸包、三维凸包以及高维凸包。对于平面点集,探究如何构造可以覆盖给定点集最小的凸多边形;对于三维空间点集,探究如何构造可以覆盖点集的最小凸实体;凸包的计算和应用还可以扩展到高维空间,用于解决更复杂的几何问题‌。作者实现的完整实现了二三维凸包算法,相关技术文章和参考作者优快云博文,本文仅对二维凸包效果进展展示和赏析,和大家一起领略图形几何之美~提示:作者优快云博文1. [凸包计算]求解点集合的凸包轮廓2. 几何算法系列-三维凸包。

2024-11-16 21:17:55 762

原创 图形几何之美系列:法向量计算之轮廓有向面积辅助法

有多种方法可计算轮廓的法向量,如根据轮廓类型进行法向量的计算、轮廓有向面积辅助法、Newell向量法等。如上文多边形轮廓面积计算中的内容所述,轮廓的法向量和面积密切相关,我们常说的法向量为单位法向量,而模长等于面积的法向量是多边形轮廓多维度的几何和物理属性,更能表达轮廓的几何特征。图:轮廓法向量需要注意的是由于浮点数存储和运算的精度损失,可能造成求轮廓法向的精度损失,如角点由于精度损失并非精确的在一个平面上(而是在容差范围内属于一个平面)、角点距离很近导致可能进一步影响法向计算的精度等。

2024-11-15 21:45:00 957

原创 图形几何之美系列:面积计算之梯形投影求和

一种常用的是微积分思路的分段求和办法是将组成轮廓的每条线段与X轴或Y轴进行有向投影,轮廓边线与X轴或Y轴的投影之和即为轮廓的有向面积。

2024-11-12 23:07:14 935

原创 图形几何之美系列:仿射变换矩阵之Y-Up和Z-Up

所有的3D工具都包含一个具有X、Y和Z轴的三维环境。在这些工具中,X轴方向是相同的,即在前视图是从左到右的水平线。然而, 不同的 3D 工具可能对Y轴和Z轴的朝向有不同的解释。一些3D工具是Y-Up的, 即Y轴是竖直方向的;而其他的3D工具是Z-Up的, 即Z轴是竖直方向的。

2024-11-11 21:34:31 488

原创 图形几何之美系列:仿射变换矩阵之先转后偏

如果一次仿射变换中存在多种类型的姿态变换,需要先进行矩阵左上角的3X3部分(缩放、旋转、镜像、非均匀变换)的构造处理,最后再叠加偏移。这是我们从一些书籍或老司机口中得知的重要经验,大白话就是“先转后偏”,那么为什么要这样呢?先偏后转不行吗?还是先转后偏有其不可忽略的独门绝技?如果先偏移,则需要基于偏移值的坐标点进行矩阵左上角3X3部分的构造,这将变得复杂的多,这对于大多数人来说不可接受,毕竟我们很多时候要做的是化繁为简,同时提高精度。下面我们对比下先转后偏和先偏后转的特点和区别。

2024-11-11 21:29:00 1292

原创 图形几何之美系列:仿射变换矩阵(二)

在几何计算、图形渲染、动画、游戏开发等领域,常需要进行元素的平移、旋转、缩放等操作,一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等,四元数在图形学中主要用于解决旋转问题,特别是在三维空间中绕任意轴的旋转,且四元数与仿射变换可以相互转换。。本篇我们继续进行探索,包括等内容。

2024-11-10 17:03:15 1130

原创 图形几何之美系列:仿射变换矩阵

仿射变换是一种结合了线性变换和平移的变换,不仅包括旋转、缩放等线性变换,还包括平移操作。变换前是直线的,变换后依然是直线;直线比例保持不变。仿射变换可以用形如下图的4x4矩阵表示,即仿射变换矩阵。图:4x4矩阵注意如果没有特殊说明,本文所述仿射变换矩阵皆为矩阵乘列向量/点方式的,即把向量和点作为4x1矩阵参与运算,如下图所示。

2024-11-09 14:03:20 1346

原创 小记-如何快速调整图片的分辨率

首先我们先明确一些概念,避免被网上形形色色的软件和所谓的“经验教程”所迷惑,有好的经验,但很多时候更多的是质量差的经验,甚至是广告,文章都是抄,抄的还不对,迷惑了广大网友。像素(Pixel): 图像显示的基本单位,是用来计算数码影像的一种单位。Pix是picture的简写,加上“元素”element,就得到pixel,故“像素”表示“图像元素”之意,有时亦被称为pel(picture element)。像素也是是专用于屏幕的概念,指的是屏幕可以解析的最小的点。

2024-11-08 21:37:50 951

原创 图形几何之美系列:三维实体结构表达

实体结构的表达由多种方式,如分解表示、构造表示**CSG**(Constructive Solid Geometry)、边界表示**BRep**(Boundary Representation)、网格表示等。常见的分解表示法有四叉树、八叉树、BSP树等方式。CSG方式出现较早,后来出现了BRep普及比较快,现在大部分领先的几何内核(ACIS、PS、OCC等)采用BRep方式,有关两者的优缺点和适用场景比较的讨论已有很多,本文不再赘述。

2024-11-07 20:30:00 1049

原创 记录mkdocs+yeti生成页面左侧导航(sidebar)添加滚动条(scroll bar)方法

mkdocs根据markdown文章和配置的主题生成静态页面有一种规整的美,在制作静态页面或网站时候是很好的选择。博主使用mkdocs + yeti自定义主题生成静态页面,发现左侧导航栏(sidebar)没有滚动条,而恰好文章标题很多,导致看不全。

2024-11-07 20:15:00 379

原创 几何算法系列:空间实体体积计算公式推导

面积和体积的计算是常见和基础的几何算法话题,面积和体积通常作为面或构件的基本信息参与相关的建模、计算、分析等过程。有关面积的计算,可以参考博主此前的文章,一种误差较小的轮廓面积计算算法_轮廓面积计算原理-优快云博客基于微分思想的轮廓面积计算方法之一是将多边形轮廓边与X轴会Y轴进行围合,形成一个个梯形,每个梯形的面积有符号,累计求和即得到多边形轮廓的面积。详见博主之前的文章,记录导致计算轮廓面积出错的一个坑点-优快云博客计算轮廓面积是常见的几何算法话题,获取轮廓面积、计算轮廓法线等场景会涉及到。

2024-10-23 19:02:45 980

原创 几何算法系列-三维凸包

凸包是基础几何算法工具函数,一些场景需要计算并显示凸包,或使用凸包以加速计算。计算三维凸包有多种方法,如增量构建、分治法等,博主采用增量构建方法计算凸包。有关二维凸包的计算请参考博主此前文章(已经是5年多以前的文章了,时光荏苒......)

2024-10-22 18:20:09 1407

原创 manim学习记录-参考文档整理

参考文档整理,方便自己和相关的人。社区版和3b1b版本有差别,博主使用的是3b1b版本,对于社区版的资料也可以进行参考,两者的大部分能力和用法一样,有一些区别,但大都可以不同方式实现(如polygram)。

2024-10-12 12:46:41 449

原创 记录size_t和int类型变量比较异常的问题

size_t是无符号的,如果将一个size_t值赋值给int,在值较大时可能会导致溢出。同样地,如果将负数的int值赋给size_t,则会出现意外的转换,负数将被解释为一个非常大的正数。

2024-10-09 19:43:03 385

原创 网格剖分-耳切法效果展示

将简单多边形转换成一组由同样顶点组成的三角形集合是计算机图形学中的一个经典问题。问题中,简单多边形是指由一组有序顶点组成的,点V0~点Vn-1。相邻的顶点之间通过边(Vi,Vi-1)连接,并且边(Vn-1,V0)连接起始点。每个顶点被两条边所共享,而边的所有交点都是顶点。将一个简单多边分解成三角形集合的方法称之为多边形的三角形化(triangulation of thePolygon)。几何学的知识告诉我们,由n个顶点组成的简单多边形总是可以分解成n-2个三角形。

2024-10-09 19:28:54 1351

原创 C++/CLI编程-属性property的封装实现

用C++/CLI对C++算法进行封装时可以有两种方案:对需要封装的C++类进行CLI封装,包含类型为对应C++类型指针的成员字段mImpl,对非基本类型不使用property封装,而使用函数封装,见上文;如2.2.2节所属,C++/CLI中定义不依赖C++类型的Wrapper类,而在相关的算法封装中实现好C++和CLI类型的转换即可,如C++ class Line和CLI ref class LineWrapper中都有pt0、pt1字段,两class没有直接关系。

2024-10-06 22:26:22 908

原创 记录安装使用manimgl遇到的问题和办法

manim提供强大的数学动画能力,一些数学类科普博主使用manim来创作视频,将灵感思维巧妙的可视化展现,这两天在安装和使用,遇到了问题,简单记录下。第一个为3b1b的版本,博主使用的是这个版本,毕竟3b1b大神声名远播,社区也比较活跃。

2024-10-02 13:26:41 567

原创 ODA(Open Design Alliance)试用小记-ODA提供源码下载就完全可控了吗?

ODA(Open Design Alliance)库架构如下:产品体系如下:ODA的产品体系越来越壮大,包括主流BIM格式SDK、Viewer、Cloud、数据交换等,每个模块需要单独购买,并提供“源码服务”。

2024-09-29 20:59:47 1565 2

原创 关于三维布尔运算的思考(2)

可以根据实际场景进行布尔运算方式的选择,需要考虑效果、效率、适应性、技术难度、几何数据表达方式等因素。当然也可以直接采用已有的几何内核,专注于应用开发,将应用做好做广,也是一种很好的选择。

2024-09-28 12:53:26 634

原创 一种误差较小的计算轮廓法向的方法

单纯的选取任意两个相邻边来计算法向可能是错误的,因为存在凹角的情况,这时得到的“法向”与正确的法向是方向相反的。而进一步通过轮廓面积计算来得到法向的符号貌似是一种比较准确的补偿方法,是的,很有效,但是上述选取任意相邻边计算的法向可能精度损失较大,如相邻边的3个点偏离平面较大、相邻3个点存在距离很近的情况等导致法向精度损失较大。

2024-09-27 19:17:56 556

原创 曲面构件的布尔运算

布尔运算算法有多种,可以根据几何数据表达方式分为Brep布尔运算、CSG布尔运算、网格布尔运算等,而网格布尔运算又又多种,如BSP方式、八叉树方式,博主实现过Brep布尔运算、BSP和八叉树两种网格布尔运算。详细可参考博主文章。轮廓布尔运算原理及实现思路_异或 计算轮廓-优快云博客轮廓布尔运算包括以下运算:反、交、并、差、异或。一、取反一个轮廓既可以代表实体也可以代表负实体,约定轮廓逆时针时为实体轮廓,顺时针时为负实体轮廓,轮廓取反即反转轮廓方向即可。

2024-09-26 20:22:24 1207

原创 利用WPF绘制轮廓并保存为图片

WPF作为显示工具也挺好用,用C#开发应用软件会比较省力,当然也有其缺点,如在对效率要求较高的情况下有性能问题,本文记录用WPF绘制轮廓并保存为图片相关内容。显示效果也还不错,满足调试使用了,

2024-09-18 18:52:15 525

原创 C++/CLI编程知识点小记

本篇博文并非详细的C++/CLI教程,仅是博主就学习和实践总结的部分知识点记录。第一次接触C++/CLI是2017年了,用C++编写底层库,C++/CLI编写wrapper层,在C#项目中进行调用,开发应用。

2024-09-18 11:30:14 1726

原创 BIM轻量化技术发展介绍

作为建设行业数字化发展的核心技术,BIM技术对促进行业数字化水平提升和高质量发展具有重要意义。

2024-09-12 18:48:40 487

原创 从线段中搜寻提取闭合轮廓(三)

做底层和数据的调试问题也是个麻烦事,如果没有方便的可视化工具辅助,那将令人感到痛苦,借助可视化的工具可以让我们高效、省心,进而心情舒畅,重要的是可以提高调试效率。当然可视化工具也分不同层次的,大致分为手动操作为主的、自动为主的两种,手动操作为主的也要区分工具准确性、易用性,如果碰到难用的也是经常令人心情烦躁,甚至破口大骂;而易用性较好的会比较省心,但由于其手动操作为主的特点,需要耗时耗力,也难以心情很舒畅。(中间吐槽省略......)

2024-09-11 17:43:14 683

原创 三维布尔运算对不规范几何数据的兼容处理

上一篇文章谈过八叉树布尔运算,对于规范几何数据的情况是没有问题的。在实际情况中,由于几何数据来源不一,处理和生成方式不一,我们无法保证进行布尔运算的几何数据都是规范的,对于不规范情况有时候也有需求,这就需要兼容不规范数据情况,当然这种兼容不是一味的让步,而是对于存在有限的不规范数据的兼容处理。

2024-09-07 22:26:13 596

原创 八叉树CSG布尔运算

三角网格布尔运算有多种理论支撑实现,比如BSP网格布尔运算方法、八叉树网格布尔运算等,同样,不同的方法有其特点及适用范围。BSP网格布尔运算依赖于较为严格的实体规范表达,即参与运算的几何实体需要是闭合的、规整的,如果出现不闭合的几何实体,运算可能出错,比如对一颗网格化表达的树进行布尔就会出错,得到意想不到的造型效果。如果实体内部由有其他元素时也会出现上述问题,比如大坝内部有其他多种围挡等建造元素时。八叉树布尔运算适用性较好,缘于其较好的鲁棒性——对于不规整几何体的兼容处理能力。

2024-09-07 22:03:20 938

BooleanUtils.cs

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

2019-08-11

WPF实现笑脸表情动画

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

2018-04-13

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

TA关注的人

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