SuperMap三维复杂模型建模之3D极坐标建模——原理篇

2023-05-16

作者:超图研究院技术支持中心-于丁

随着SuperMap iDesktop 10i(2021)
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。

这样的说法仅仅是帮助应用者去理解,而不是严格意义上的证明,而且本文的核心就是“帮助理解”。

三、黎曼空间

很多资料上为了帮助理解曲面上的UV坐标,会特意做一个如下图这样的一个映射关系,将平面矩形网格与曲面的UV坐标网做一个对应。甚至让我们将曲面的UV坐标网,想象成由一个平整的矩形网格变形而来的。

在这里插入图片描述

这样解释也是一种逃避,因为不想突破既有的欧几里得空间知识的边界。其实,本来就有曲面空间几何体系的,只不过往往在纯数学或者物理领域理科生才会接触到,我们工程领域也许是被—堆堆公式吓倒了,以至于自然地拒之于千里之外。

我们不妨作为科普性质地做些必要的了解,然后怀着一颗崇拜的心,但是又可以心安理得地使用他们非凡的成果。

如果一定要从几何理论上来理解UV坐标,那就不得不搬出一个大咖"黎曼”,就是下面这个人,德国数学家,40岁就去世了,他开创的黎曼几何,给爱因斯坦的广义相对论提供了数学基础。

黎曼建立了黎曼空间的概念,把欧氏几何、非欧几何都包进了他的体系之中,在这里说黎曼空间,我们无意去罗列甚至研究抽象的数学理论,仅仅是为了帮助我们突破笛卡尔平直坐标系的惯性思维,使我们明白,我们所学到的知识,仅仅是一个大的几何体系下的一个小领域,但是目前研究曲面的构形,不得不用到黎曼空间的概念,是逃避不了的,其实也仅仅是理解而已,很多基于理论的具体应用,软件的库文件去实现了,而我们不过是调用(程序开发者)或者去使用调用结果而已。

然而,即使是理解也是有难度的。

也有资料对黎曼空间的解释就是弯曲的空间。为了抵抗既有知识的束缚,我们需要充分地发挥想象力。针对一维空间,不妨将直线数轴的概念推广到沿着空间曲线,而将该曲线称为一个线空间,那么类似数轴上长度单位的刻度点,在线空间上也有用来度量的分割点,当然度量的单位就不仅仅是长度了。

顺着这个思路,二维空间就是面空间,当然,这里的面自然不局限于平面,可以是任意的曲面,而且对应一维线空间上的刻度点,二维面空间上是两个方向的度量参考线,当然不局限于直线,只不过绘出这些线以后,与笛卡尔坐标系中XY平面坐标网有些类似,这就是UV坐标线。

在这里插入图片描述

怎样来理解UV两个方向的参考线呢?

我们也可以借助于曲面参数方程来进行如下的推演:

已知参数曲面S的方程(x,y,Z) =
(x(u,v),y(u,v),z(u,v)),自变量u,v是曲面S的参数。在曲面S上取一点可以用r
(u0,vO)来表示,如果让参数u固定,即u=u0,而让参数v变化,则动点描出一条落在曲面S上的曲线r
(u0,v),这条曲线称为在曲面S上经过(u0,v0)的v-曲线,同理可以定义经过(u0,v0)点的u-曲线,即r
(u,
v0)。这样,参数曲面上经过每一点有一条u-曲线和一条v-曲线,它们构成曲面上的参数曲线网,如下图所示。这个推演过程也可以帮助理解曲面的UV坐标。
在这里插入图片描述

四、UV坐标的实现

目前在包括超图iDesktop在内的,可以做曲面处理的软件中,针对一个确定的曲面,一定有一个与其绑定在一起的UV坐标系,你也可以将它理解为一个局部坐标系,这个曲面的很多特性用这个UV坐标系来进行设置和计算会带来很大的方便。我们的曲面相关操作,包括二次开发的接口一定以UV坐标系来处置的。

也就是说即使是专注于建模使用的软件,一样是离不开UV坐标的,如Rhino、Catia等等。

到目前为止,尽管我们很多人还是没有很深入的,也许上述的这些粗浅的表述,我们已经能够简单的了解UV坐标下的参数方程了,各参数具体影响的是什么,如何去影像的已经有个感觉了不再茫然无措,当然接下来我们就会有这样的问题,那如何上手实操构建出自己心中所想,花里胡哨好看的模型呢?

让我们见下一篇博客《SuperMap三维复杂模型建模之3D极坐标建模——基础篇》。

若对本文内容有疑问或讨论,可以向超图研究院支持中心进行咨询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SuperMap三维复杂模型建模之3D极坐标建模——原理篇 的相关文章

  • 跟我一起学【数据仓库】之——需要避免的维度建模错误

    1 在事实表中放入文本属性 2 限制使用冗长的描述符以节省空间 3 将层次 xff08 级联的多对一关系序列 xff09 划分为多个维度 4 忽略跟踪维度的变化 合理运用缓慢变化维度的类型 xff0c 或者微型维度 5 使用更多的硬件解决遇
  • 跟我一起学【Powerdesigner】之——导入EXCEL生成逻辑模型

    表结构如图 xff1a 中文表名 英文表名 字段编码 字段名称 字段注释 字段类型 是否主键 是否可空 主键是否自增 user1 用户信息表1 id id id int 10 Y Y Y user1 用户信息表1 name 用户名 用户名
  • SELECT语句中的for update的用法(锁的运用)

    回复1 xff1a 一般FOR UPDATE用在PL SQL的游标里 xff0c 它的作用就是一个行级锁 xff08 对游标里所有的记录 xff09 xff0c 如果其他进程要更新这个游标行级锁里的记录 xff0c 就必须等待当前进程的CO
  • IIC读取:SDA_in SDA_out寄存器设置

    IIC读取语句里的语句 xff1a uchar DAC5571 check void uchar slaveack SDA in SCL H I2C delay slaveack 61 SDA read SCL L I2C delay SD
  • 如何快速的看懂别人的代码

    最近由于公司的一位前辈 xff0c 由于家中之事欲走 xff0c 所以接手了一个公司长期再做的项目 xff0c 自己也略有了解 xff0c 知道这个项目先后经过3人之手的煅炼 xff0c 现在这个交接棒传到了我的手中 xff0c 初见代码
  • 正则表达式匹配URL或者网址

    正则表达 一 正则表达式 xff1a http ftp https w 43 w 43 43 w 64 61 amp amp 43 w 64 61 amp amp 43 匹配 xff1a http regxlib com Default a
  • Python3 logging详解

    Python3中logging详解 官方文档中 xff0c logging的5个层级 xff1a 实例代码 xff1a def logs time prov type log name 61 prov 43 39 39 43 time fi
  • python3爬虫 链接+表格+图片 思路

    左侧部门列表每点击一次都有一个新的js网页出现 xff0c Request URL可以明确看出网址 xff0c 且每个网址都有其规律 xff1a 点击了三个部门 xff0c 返回的网址如下 xff0c 可以看出是有规律的 xff0c 此处d
  • 跟我一起学MongoDB之——可视化工具Compass的简单使用

    首先官方为大家介绍了一下MongoDB Compass的主要功能 xff1a 1 对数据的可视化 2 插入 修改 删除 3 调试 优化 进入Compass首先出现连接界面如下 xff08 此处我使用的是我操作时候的界面状态 xff09 直接
  • sqluldr2 报错ora-24345: A Truncation or null fetch error occurred

    source etc profile source root bash profile unset NLS LANG sqluldr2 user 61 sjgj sjgj 64 10 254 4 196 1521 client query
  • 车牌号校验正则表达式

    一 车牌号校验规则 1 常规车牌号 xff1a 仅允许以汉字开头 xff0c 后面可录入六个字符 xff0c 由大写英文字母和阿拉伯数字组成 如 xff1a 粤B12345 2 武警车牌 xff1a 允许前两位为大写英文字母 xff0c 后
  • 日语学习资料汇总(可下载)

    直播课程推荐 xff1a 妞妞 大家的日语 侧重考级 天易外语 旧版 标准日本语 娜娜 日语讲堂 津波老师 新版标准日本语 爱知 实用日语口语 在直播课程有预告http www fairage com total jsp type 61 1
  • 成熟男人与24岁女孩精彩对白(转)

    烛光晚餐 桌两边 xff0c 坐了男人和女人 我喜欢你 女人一边摆弄着手里的酒杯 xff0c 一边淡淡的说着 我有老婆 男人摸着自己的手上的戒指 我不在乎 xff0c 我只想知道 xff0c 你的感觉 你 xff0c 喜欢我嘛 xff1f
  • jsessionid的困扰

    问题 xff1a 向某银行发送支付请求时 xff0c 如果客户端cookie开启 xff0c 第一次请求时 xff0c 请求地址会自动增加一jsessionid 第二次没有问题 如果客户端cookie关闭 xff0c 无论如何请求地址会自动
  • 2级基本编程问题(—)(C++)

    问题 xff08 1 xff09 时间转换 问题描述 xff1a 给定一个从0秒开始计时的秒数 xff0c 请将其转换为X X X的格式 输入 xff1a 输入一个秒数n xff0c 且这个秒数0 n 86400 输出 xff1a 输出这个
  • 报错<BEA-101017> error:java.net.SocketException解决

    最近项目登录不了 xff0c 报错为 xff1a lt BEA 101017 gt error java net SocketException Connection reset by peer socket write error 最后问
  • 专业IT管理人才必备十大能力

    IT168 技术文章 作为IT技术人员 xff0c 相信没有一个人愿意永远在底层编写程序或做简单的系统维护 经过一段时间的技术和经验的积累 xff0c 很多人都向往更高层的职位 xff0c 但如何能成为一个专业的IT管理人才 xff0c 并
  • Modbus超时时间设置

    很多同学在做Modbus通讯时 xff0c 需要连续读取多个现场设备的数据 xff0c 虽然也编写了Modbus轮询的程序 xff0c 但是有时还是无法正常通讯 有时虽然能够保证通讯 xff0c 但是所有现场设备的轮询周期很长 本文将从MB
  • Modbus测试工具(Modbus Master调试工具)

    Modbus Poll是Modbus主设备模拟工具 xff0c 帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试 xff0c 用于监控 测试 调试Modbus通讯设备 可以多个窗口中同时监控多个Modbus子设备 xff
  • 如何移除Googleads.g.doubleclick.net 病毒

    Related Symptoms about Googleads g doubleclick net Googleads g doubleclick net is very tricky and stubborn redirect viru

随机推荐