/ / Oberflächenkonstruktion mit zwei Liniensegmenten - Grafik, Geometrie

Oberflächenkonstruktion mit zwei Liniensegmenten - Grafik, Geometrie

habe zwei Liniensegmente im Raum, wie konstruiere ich eine Fläche mit zwei Liniensegmenten als Grenze?

Antworten:

4 für die Antwort № 1

Sie können dies parametrisch tun.

Legen Sie Ihre zwei Segmente wie folgt dar:

{s1(t)} = t {a1} + {b1}   (0 <= t <= 1)

{s2(t)} = t {a2} + {b2}   (0 <= t <= 1)

wobei {} Vektormengen anzeigt, {a}, {b} Konstanten.

Dann haben Sie für jedes t zwei Punkte im Raum, einen in jedem Segment.

Die gerade Linie zwischen ihnen kann beschrieben werden durch:

{r(v)} = ({s2(t)} - {s1(t)}) v + {s1(t)}  (0 <= v <= 1 )

Wir sind fast da. Jetzt schreiben wir die Funktion, die die Oberfläche beschreibt und s1 und s2 durch ihre Werte ersetzt:

{K(v,t)} = t v ( {a2} - {a1} )+ v ({b2} - {b1})  + t {a1} + {b1}  (0<= t,v <=1)

HTH!

Bearbeiten

Ein Beispiel:

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}]}]]

Alt-Text

Ein weiteres Beispiel, das eine nicht ebene Oberfläche zeigt:

a1 = {1, 1, 1};
b1 = {0, 0, 1};
a2 = {1, 0, 0};
b2 = {0, 1, 0};

Alt-Text


1 für die Antwort № 2

Die zwei Liniensegmente müssen koplanar sein(dh: beide liegen auf der Oberfläche, die Sie rekonstruieren wollen). Ein Kreuzprodukt der beiden Liniensegmente gibt Ihnen die Normale zur Oberfläche (ein Vektor senkrecht zur Oberfläche).

Worüber ich mir an dieser Stelle nicht sicher bin, ist was dubedeutet durch die Liniensegmente, die die Grenze bestimmen. Wenn die Enden der Liniensegmente die 4 Punkte einer Quad-Grenze sind und Sie diese in ein unterteiltes Patch verwandeln möchten, können Sie zwischen den Eckpunkten bilinear interpolieren, um die Koordinaten für Ihr Patch-Mesh zu erzeugen.