我正在尝试参数化3D几何体以进行形状优化。结构如下所示。另一个真实的例子是here。
目前我正在使用BSplines
来创建下半部分并使用对称来创建箔的整个下部。这是我得到的。
现在我有很多控制点需要注意才能运行形状优化。我也不知道如何以合理的方式将上部与底部水翼部件连接起来。我不知道如何设计上部连接的箔片(箔片的脂肪鼻部分)的良好中间部分。我还需要在几何体中附加flap。
请提供一些关于这种曲面参数化的建议,以便我们可以从MMA中操纵几何。控制点越少,优化的情况就越好。可能是3D中某些分析功能的组合。但我怀疑这是否可能。
BR
答案 0 :(得分:2)
我认为你有两个选择:1)创建几何的第二部分,然后编写一个面 - 面交叉算法来合并它们。 2)创建几何体的第二部分并编写两个函数,如果查询点在几何体内,则返回-1;如果它在外面,则返回+1(其他值将执行)。然后使用RegionPlot3D[ f1[x,y,z]<0 || f2[x,y,z]<0,....]
。我们的想法是提取GraphicsComplex
并使用它。问题是你可以用这个来近似角落。以下是我的意思。
if1[x_, y_, z_] := If[x^2 + y^2 + z^2 <= 1, -1, 1]
if2[x_, y_, z_] := If[(x - 1)^2 + y^2 <= 1 && -1.5 <= z <= 1.5, -1, 1]
res = RegionPlot3D[
if1[x, y, z] < 0 || if2[x, y, z] < 0, {x, -2, 2}, {y, -2,
2}, {z, -2, 2}, PlotPoints -> 100, Boxed -> False, Axes -> False]
然后提取坐标和多边形。
coords = res[[1, 1]];
poly = Cases[res[[1]], _Polygon, Infinity];
Graphics3D[GraphicsComplex[coords, poly], Boxed -> False]
希望这有帮助。