2つの線分を境界としてどのように2つの線分を持つサーフェスを構築するには、空間に2つの線分を持っている?
回答:
回答№1は4これをパラメトリックに行うことができます。
あなたの2つのセグメントを以下で説明します:
{s1(t)} = t {a1} + {b1} (0 <= t <= 1)
{s2(t)} = t {a2} + {b2} (0 <= t <= 1)
{}はベクトル量、{a}、{b}定数を示します。
そして、いずれのtについても、空間内に2つの点があり、各点に1点あります。
それらの間の直線は、次のように記述することができます。
{r(v)} = ({s2(t)} - {s1(t)}) v + {s1(t)} (0 <= v <= 1 )
私たちは、ほぼ、そこにいる。今度は、サーフェスを記述する関数を記述し、s1とs2をその値で置き換えます。
{K(v,t)} = t v ( {a2} - {a1} )+ v ({b2} - {b1}) + t {a1} + {b1} (0<= t,v <=1)
HTH!
編集
例:
a1 = {1, 1, 1};
b1 = {0, 0, 0};
a2 = {1, 1, 0};
b2 = {0, 0, 0};
Show[ParametricPlot3D[
t v a1 (a2 - a1) + v (b2 - b1) + t a1 + b1, {t, 0, 1}, {v, 0, 1},
AxesLabel -> {"x", "y", "z"}],
Graphics3D[{Thick, Red, Line[{b1, a1 + b1}]}],
Graphics3D[{Thick, Red, Line[{b2, a2 + b2}]}]]
平坦でない面を示す別の例:
a1 = {1, 1, 1};
b1 = {0, 0, 1};
a2 = {1, 0, 0};
b2 = {0, 1, 0};
回答№2の場合は1
2つの線分は同一平面上になければならない(つまり、両方とも再構成したい表面上にある)。 2つの線分の積は、サーフェスの法線(サーフェスに垂直なベクトル)を与えます。
この時点でわからないことは、あなたが線分が境界を決定することを意味する。線分の端がクォード境界の4点であり、それを細分化されたパッチに変えたい場合、コーナー点の間を双線形に補間して、パッチメッシュの座標を生成することができます。