SuperMap三维复杂模型建模之3D极坐标建模
作者:超图研究院技术支持中心-于丁
随着SuperMap iDesktop 10i(2023) V10.2.1的上线发布,为进一步拓展全空间数据模型及其分析计算能力,一个新功能“3D极坐标建模”也随着该版本悄然上线。
3D极坐标建模功能实现根据UV参数和数学表达式,构建包括球面、抛物面、双曲抛物面、柱面、圆锥面、莫比乌斯环面、螺旋面、螺旋环面以及Roman曲面等多种3D曲面模型。
一、曲面建模3D极坐标建模的本质就是曲面建模,在曲面建模领域上超图iDesktop同样是无法避开UV坐标的。但实际应用上,我们绝大部分人并不是该领域专业出身的,都是在各个应用软件或项目需求中发现UV坐标这个新领域的,也许我们都曾试图通过百度简单搜索个“新手0基础uv坐标曲面建模5分钟上手教程”的东西,或者轻重强度的资料搜索钻研搞懂。但真的上手都很快放弃了,我们会发现在曲面建模“入门”上,没有接触过的数学概念一个追着一个抱团袭击我们的大脑“黎曼几何”、“非欧控件”、“微分几何”、“样条曲线”…打的我们落荒而逃。我们视图跳过清晰地了解数学原理,直接上手操作各大平台的建模软件进行实战操作,却又发现使用预设模板点击一下就建模成功了,但想要自己需要的造型进行修改,面对复杂、陌生、庞大的参数调整甚至创造时,软件没那么 “自动”、“智能”了,力不从心又无处下手。
虽然数学有自身的优雅,能亲手推导、构造每一步的人凤毛麟角,但我们只是了解理解相关逻辑,借助一些成熟的辅助和平台工具,已经能够让抽象的理论照进现实,完成我们的曲面建模需求。因此本篇文章便是“3D极坐标建模”使用的原理篇,让我们从UV坐标开始带着问题,来脚踏实地的步入建模之路。
针对某一个具体的曲面,是可以通过该曲面上的U、V坐标值来指定曲面上的某个确定的点。
但是我们已习惯了欧几里得空间,习惯了在笛卡尔三维坐标系(xyz)下表示空间点的方式,我们普遍会在查阅了很多资料教程后,依然会有这样的一些问题摆在眼前:
1、为什么能用(u,v)两个坐标值来表示空间曲面上点位置?
2、曲面上的UV线是怎样形成的?
3、采用UV坐标有什么意义?
4、所有曲面都可以UV坐标化吗?
虽然看上去需要很深的数学功底,但还是让我尽量通俗易给大家简单的解释一下UV坐标。
二、曲面参数方程对于点的曲面坐标,有些资料中,还给出了(u,v,w)来类比我们浸淫多年的欧式坐标系(x,y,z),这其实是个误导,因为这里的u、v其实是来源于参数方程的两个参数,何来的w呢?
空间曲面的参数方程是这样的:
这是以u、v为参变量的双参数方程,与空间任意点的坐标(x,y,z)不同,如果你通过(u,v)两个值指定了曲面上的一个点的位置,这里除了两个坐标值条件外,还有一个隐含的条件,就是该点在指定的曲面上,曲面参数方程本身就是一个已知条件,并非(u,v)两个坐标值就能指定空间任意点。
与空间曲面类似,空间曲线方程是单参数方程,形式如下:
它只有一个参数t。
为什么空间曲线参数方程只有一个参变量,而空间曲面参数方程需要两个呢?
我们的教科书只管给出公式,却没有回答这类的问题。
我们不妨将独立参变量的个数理解为"参数自由度"这样一个概念,对于一个既定的空间曲线上的点而言,只要知道它的一个坐标值,比如x=x0,那么就可以确定是曲线上的某个点,如果需要图形辅助理解,就是x=x0这个平面与空间曲线的交点。因此,我们认为空间曲线的”参数自由度"为1,所以参数方程的参数个数为1。
而对于已知的空间曲面而言,需要知道两个坐标值,才能确定曲面上对应的点,同样用图形辅助理解,两个平面的交线与空间曲面的交点。所以空间曲面的"参数自由度"为2,曲面的参数方程的参数个数为2。
这样的说法仅仅是帮助应用者去理解,而不是严格意义上的证明,而且