首页 > 其他分享 >几何内核与数学

几何内核与数学

时间:2023-10-25 13:05:40浏览次数:27  
标签:时代 数学 opencascade 几何 math 内核


几何内核与数学_优化算法

几何内核可以看成一个数学库的子集,只是在几何图形上的应用。学习几何内核的过程类比于学生时代掌握的数学工具。

几何内核与数学

1 概述

从1950年第一台图形显示器(美国麻省理工大学MIT旋风I号Whirlwind I)的诞生,到1962年MIT林肯实验室的Ivan E. Sutherland发表题为“Sketchpad: 一个人机交互的图形系统”确定计算机图形学作为独立科学分支。经过70多年的发展,计算机图形学中的几何造型技术成了现在的几何内核。

数学是我们从小学、中学到大学一直都在学习的课程,是现代科技的理论基础,是创新的源泉。几何内核与数学的联系非常紧密,结合开源几何内核opencascade谈谈学习过程和数学的认识。

几何内核与数学_OpenCascade_02

2 高中时代

在刚学习的时候,总是先从简单的开始入手。比如,先看看直线、圆是什么,怎么显示出来。长方体、圆柱体等怎么用BREP进行表示,怎么显示在屏幕上。这个时候考虑问题是常人思维,我认为是高中时代。

比如,怎么计算二维直线与圆的交点呢?上过高中的都学过,联立直线与圆的一元二次方程组,将解方程组的代码固化在代码中。当计算椭圆与圆的交点时,也做同样的处理,就是多写点代码。高中几何学得好的,可能会说我可以用向量,向量的方法会比代数的方法速度要快。

再比如,怎么计算曲线的弧长和曲面的面积呢?计算曲线可以通过对曲线进行采样点,将点连成多段线,再分别计算每小段线段的长度累加就是了。面积咱们也可以类似处理,将曲面离散成三角形或四边形,再将这些三角形或四边形面积累加。这些方法都能实现,但是性能、精度都会成为问题。要计算得精度高,采样就要密,就会带来性能问题。

几何内核与数学_迭代_03

3 大学时代

到了大学时代学习过高等数学、线性代数等,有了更有力的工具来解决更一般问题。面向对象编程和数学也是相通的,就是将问题抽象的能力。这个时候眼中没有直线、圆、B样条曲线、平面、球面、B样条曲面等等,只有线Curve和面Surface。

几何内核与数学_优化算法_04

再进一步抽象,将线Curve与一元函数F(x)对应,将面Surface与多元函数对应F(x,y),与数学建立了联系。

几何内核与数学_偏微分方程_05

这时就可以使用数学工具对问题进行处理了。如计算曲线弧长,就变成一个对切向量的积分。曲线切向量需要计算一阶导数,《The NURBS Book》等书上计算B样条微分的公式就有用,看待B样条曲线和看待圆一样了。

积分的计算可以使用数值方法,如Newton-Cotes或Gauss积分法,使用更少的迭代获得更高的精度,程序优化的方向也清晰。

 

从opencascade的类math_Function和math_MultipleVarFunction可以可以看出,许多几何问题都抽象成了数学问题。有很多人问我,怎样才算入门了opencascade呢?那就是思考问题的方式转换成数学的方式,我觉得就算入门了。再具体点可操作点呢,首先就是数据结构的入门,掌握BREP边界表示法,如在圆柱面Surface上框出一个小面片Face,能正常显示出来就算理解opencascade中的BREP结构。其次是几何算法入门,就是将从math_Function和math_MultipleVarFunction所有的派生类的数学公式写出来。这两点动手做完,我觉得可以算入门了。

 

4 研究生时代

如果大学时代我们掌握了微分、积分、线性代数,到研究生时代应该掌握变分、偏微分方程、最优化理论等等。如偏微分方程用于构造过渡曲面,曲线曲面拟合光顺最后都抽象成带约束的非线性方程组的求解。

几何内核与数学_优化算法_06

到研究生时代因为掌握的数学工具,会处理看上去很简单但处理起来更复杂的问题:如上图所示的过渡Blend,以及蒙面Skinning和扫掠Sweep等。

几何内核与数学_迭代_07

这时也可以有一些智能算法,如遗传算法、蚁群,粒子群PSO优化算法,AI等,使用仿生、遗传变异等手段使求解迭代更快收敛。为传统优化算法提供初始解,使传统算法能更快、更准地找到解析解,不至于深陷局部最优解中不能自拔。在opencascade中也有相关实例,如math_PSO。这些智能算法有随机性,不像解析算法那样满足一定约束条件必定会找到相对准确答案。只能作为像曲面求交之网格离散法,作为参数迭代法的预处理。到这个时代,查看相关技术论文毫无压力,面对一般的几何问题都应该可以从容应对。和研究生一样面对的问题更加具体,会钻牛角尖。

5 总结

综上所述,几何内核可以看成一个数学库的子集,只是在几何图形上的应用。学习几何内核的过程类比于学生时代掌握的数学工具。在高中时代,看问题很具体,只能case by case的处理,功能能做出来。到大学时代,有了一定的抽象能力(与面向对象编程一样),看问题具有一般性,能使用更高级点的数学工具来处理,有能力来兼顾精度和性能。到了研究生时代,就不怕别人来卡脖子,甚至能超越别人。这个时候不要给自己设限,找准喜欢的方向去钻牛角尖,终会有所成。

 


为了方便大家在移动端也能看到我的博文和讨论交流,现已注册微信公众号,欢迎大家扫描下方二维码关注。


几何内核与数学_OpenCascade_08




标签:时代,数学,opencascade,几何,math,内核
From: https://blog.51cto.com/eryar/8016416

相关文章

  • Grub2 内核启动参数总结
    Grub2内核启动参数总结部分参数biosdevname=0net.ifnames=0#注意这个配置会修改网卡的名字,比如之前是ens192#添加如上两个内容后就会变成eth0类似于CentOS6的命令特点.#注意修改了网卡名称会导致机器无法上网,需要通过控制台连接机器,并且修改#/etc/sysconfi......
  • linux内核通信
    符号导出EXPORT_SYMBOL()EXPORT_SYMBOL标签内定义的函数对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用。2.使用方法加入B中调用A中导出函数[1]在模块A中c文件或者头文件中使用EXPORT_SYMBOL(xxxx)导出函数.有些需要添加编译选项-DEXPORT_SYMTAB.[......
  • 组合数学
    组合数学二项式定理​ $(a+b)^n=\sum\limits_{i=0}^{n}\dbinom{n}{i}a^ib^{n-i}$​ 证明:考虑组合意义,对于一项\(a^ib^{n-i}\),需要在\(n\)个\((a+b)\)中选出\(i\)个\(a\),剩余全部选\(b\)乘起来得到,故系数为\(\dbinom{n}{i}\)。常见组合恒......
  • P3708 koishi的数学题(取模转化减法)
    \(\displaystylef(x)=\sum_{i=1}^nx\bmodi\)对于一个i,枚举k对于[xk,x(k+1)),中的数,贡献的形式都为a[i]-i*k直接差分维护即可#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<map>#include<vector>#defineA......
  • 内核补丁查询
    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/mm/debug.c?h=linux-5.4.y&id=4d35427ad7641cba08ea0deffae1a78147ad41c0......
  • mysql数学计算
    mysql数学计算一、取整函数1、向上取整CEIL(X)和CEILING(X):返回大于等于X的最小INT型整数。SELECTCEIL(2.3)--32、向下取整FLOOR(X):返回小于等于X的最大INT型整数。SELECTFLOOR(2.3)--23、舍入函数ROUND(X,D):X表示要处理的数,D......
  • 三维模型数据拼接中的几何坐标变换方法实现
    三维模型数据拼接中的几何坐标变换方法实现   利用几何坐标变换后纠正技术实现倾斜摄影三维模型数据的拼接是一种常用的方法。下面将详细介绍如何利用这一技术实现拼接过程。1、数据准备:首先,需要获取不同视角下的倾斜摄影影像数据。这些影像应该覆盖同一场景,并且在重叠......
  • 几何分布无记忆性的感性理解
    几何分布:在独立重复试验中,实验次数预先不能确定,设每次实验成功的概率为p,将实验进行到成功一次为止,以\(X\)表示所需的实验次数,则\(X\)的分布律为\[P\{X=k\}=(1-p)^{k-1}p,k=1,2,3...\]无记忆性:\[P(X>n|X>m)=P(X>n-m)\]理解:对于几何分布,只需要最后第X次成功就可以,之前的实......
  • Ubuntu 自动升级内核后网络不通
    Ubuntu22.04自动升级内核后网络不通,现象是没有网络设备,有线和无线都没有。启动上一个内核检查,发现驱动在linux-modules-extra-xxx-generic里面,然而这个包并未安装,虽然手动安装可以解决,但更好的方案是安装 linux-generic-hwe-22.04,这样可以保证每次升级时会自动安装。......
  • 数学大礼包 - Day 5
    群论群\((G,\cdot)\):指满足封闭性(\(\foralla,b\inG,a\cdotb\inG\))、结合律(\(\foralla,b,c\inG,(a\cdotb)\cdotc=a\cdot(b\cdotc)\)),唯一存在单位元(\(\existse\inG,\foralla\inG\),有\(e\cdota=a\cdote=a\))、逆元(\(\foralla\inG......