math - 为什么 G3 连续性只能在两条边之间实现?
问题描述
为什么 G3 连续性只能在两条边之间实现?
例如,曲线 1/2/3、4/5/6、7/8/9、10/11/12 都是 G3 连续的。中心曲面在边 5/2 上使用 G3 约束构建。既然曲线 1/2/3, 4/5/6 已经是 G3 了,为什么边 8/11 只能达到 G1 切线呢?
我不能只构建一个函数来使用每个 u/v 的边缘控制点的一阶和二阶和三次导数来计算与该边缘控制点相邻的 3 个控制点以在所有 4 个边缘上实现 G3 吗?
解决方案
不能将中心曲面构建为对所有 4 个曲面都为 G3 的原因是因为 4 个曲面可能不会在具有 G3 连续性的 4 个角点处相交。事实上,对于曲线 1/2/3、4/5/6、7/8/9、10/11/12 都是 G3 连续的给定条件,仅确保 4 个曲面在 4 个角点处相交G1 连续性。
以下是每个 OP 请求的更多详细信息。
让我们将 4 个曲面中的两个表示为曲面 A 和 B,其控制点 P 和 Q 重合,如下图所示。
曲面A在P点的法向量是向量(P,P1)和向量(P,P2)的叉积,曲面B在Q点的法向量是向量(Q,Q1)和向量的叉积(Q,Q2)。由于曲线 1 和 2 以 G3 连续性相连,这意味着向量(P,P1) 与向量(Q,Q1) 平行。同样,我们有向量(P,P2)平行于向量(Q,Q2)。因此,我们可以得出结论,曲面 A 和 B 在点 P(或 Q)具有相同的单位法向量,这意味着这两个曲面满足 G1 连续性。
为了使曲面 A 和 B 在点 P 与 G2 相交,每个曲面的另外 3 个控制点将参与其中(在图中显示为曲面 A 的绿点 P3、P4 和 P5)。所有这 12 个控制点(每个曲面 6 个)都需要形成特定关系,才能使两个曲面满足 G2 连续性。曲线 1/2 和 8/9 与 G3 连续性相连的事实仅影响 P3 和 P5 的位置,而不影响 P4 的位置。因此,它不能保证两个曲面在 A 点满足 G2 连续性,更不用说 G3 连续性了。
推荐阅读
- javascript - 无法使用 web3.eth.accounts.wallet.encrypt
- python - 使用多线程或多处理同时从串口读取数据
- flutter - 如何在颤动中制作刷新页面按钮?
- java - 如何检查设备是否启用谷歌移动服务?
- node.js - Nginx 配置用于将 Wordpress 设置为主页但 /listing 来自节点的页面
- pdf - 转换 - GLTF/STL/OBJ 文件格式为 PDF 页面的 U3D 文件
- python - re.split 删除输入文本预处理中的 url
- flutter - 带有条件 Flutter 的 TextFormField
- python - 为 Kubctl exec 命令添加超时
- azure - Azure Bot Framework Direct Line - 如何更改语言?