Graphics 如何正确格式化波阵面的NURBS曲线.OBJ文件格式?

Graphics 如何正确格式化波阵面的NURBS曲线.OBJ文件格式?,graphics,.obj,wavefront,bspline,nurbs,Graphics,.obj,Wavefront,Bspline,Nurbs,我正在尝试编写一个包含3D曲线(而不是曲面)的程序。我找到了以下链接,该链接描述了如何在.OBJ文件中正确设置曲线和曲面的格式: 没有有理b样条曲线的示例,从文档中我不清楚如何在parm u部分中格式化节点向量。任何帮助都将不胜感激 下面是相关代码的示例。在上面的链接中,有一个有理b样条曲面的描述: v -1.3 -1.0 0.0 v 0.1 -1.0 0.4 7.6 v 1.4 -1.0 0.0 2.3 v -1.4 0.0 0.2 v 0.1 0.0 0.9 0.5

我正在尝试编写一个包含3D曲线(而不是曲面)的程序。我找到了以下链接,该链接描述了如何在.OBJ文件中正确设置曲线和曲面的格式:

没有有理b样条曲线的示例,从文档中我不清楚如何在
parm u
部分中格式化节点向量。任何帮助都将不胜感激

下面是相关代码的示例。在上面的链接中,有一个有理b样条曲面的描述:

v -1.3 -1.0  0.0
v  0.1 -1.0  0.4  7.6
v  1.4 -1.0  0.0  2.3
v -1.4  0.0  0.2
v  0.1  0.0  0.9  0.5
v  1.3  0.0  0.4  1.5
v -1.4  1.0  0.0  2.3
v  0.1  1.0  0.3  6.1
v  1.1  1.0  0.0  3.3
vt 0.0  0.0
vt 0.5  0.0
vt 1.0  0.0
vt 0.0  0.5
vt 0.5  0.5
vt 1.0  0.5
vt 0.0  1.0
vt 0.5  1.0
vt 1.0  1.0
cstype rat bspline
deg 2 2
surf 0.0 1.0 0.0 1.0 1/1 2/2 3/3 4/4 5/5 6/6 \
7/7 8/8 9/9
parm u 0.0 0.0 0.0 1.0 1.0 1.0
parm v 0.0 0.0 0.0 1.0 1.0 1.0
end
贝塞尔曲线的另一个示例:

v -2.300000 1.950000 0.000000
v -2.200000 0.790000 0.000000
v -2.340000 -1.510000 0.000000
v -1.530000 -1.490000 0.000000
v -0.720000 -1.470000 0.000000
v -0.780000 0.230000 0.000000
v 0.070000 0.250000 0.000000
v 0.920000 0.270000 0.000000
v 0.800000 -1.610000 0.000000
v 1.620000 -1.590000 0.000000
v 2.440000 -1.570000 0.000000
v 2.690000 0.670000 0.000000
v 2.900000 1.980000 0.000000
# 13 vertices

cstype bezier
ctech cparm 1.000000
deg 3
curv 0.000000 4.000000 1 2 3 4 5 6 7 8 9 10 \
11 12 13
parm u 0.000000 1.000000 2.000000 3.000000  \
4.000000
end
# 1 element

有多种方法可以将NURBS曲线的信息存储在wavefront.obj文件中

以下是一个例子:

v -2.300000 1.950000 1.000000 1.000000 
v -2.200000 0.790000 2.000000 1.000000 
v -2.340000 -1.510000 0.000000 1.000000 
v -1.530000 -1.490000 0.000000 1.000000 
v -0.720000 -1.470000 0.000000 1.000000 
v -0.780000 0.230000 0.000000 1.000000 

cstype rat bspline
deg 2
curv 0.00 1.00 1 2 3 4 5 6 
parm u 0.00 0.00 0.00 0.25 0.50 0.75 1.00 1.00 1.00  
end
现在让我们仔细看看。我们在笛卡尔坐标系中有6个顶点,带有额外的权重坐标(x,y,z,w)。要定义阶数为2的有理b样条曲线(NURBS),必须设置

cstype rat bspline
deg 2
下一个值定义曲线。语法是:

curv [u-start] [u-end] [first-cp] [second-cp] [...]
,第788行:

曲线u0 u1 v1 v2

自由形式几何图形的元素语句

parm u [knot1] [knot2] [...]
指定曲线、其参数范围及其控制顶点。 尽管曲线无法着色或渲染,但其他用户也可以使用它们 高级可视化程序

u0是曲线的起始参数值。这是一个浮动的 点数

u1是曲线的结束参数值。这是一个浮动的 点数

v是控制点的顶点参考号。您可以指定 多个控制点。至少需要两个控制点 为了一条曲线

对于非有理曲线,控制点必须是三维的。暂时 有理曲线,控制点为3D或4D。第四坐标 (重量)如果省略,则默认为1.0

现在我们定义u向量/序列。这些值当然取决于几何体

parm u [knot1] [knot2] [...]
,第1107行:

帕姆u p1 p2 p3

parm v p1 p2 p3

自由形式几何体的主体语句

parm u [knot1] [knot2] [...]
指定全局参数值。对于B样条曲线和曲面, 这将指定节点向量

u是参数值的u方向

v是参数值的v方向

要设置u和v值,请使用单独的命令行

p是全局参数或节点值。您可以指定多个 价值观至少需要两个参数值。参数 值必须单调增加。曲面的类型和阶数 指定所需的值数

我希望这有帮助