/ / Konstrukcja powierzchni za pomocą dwóch segmentów liniowych - grafika, geometria

Konstrukcja powierzchni za pomocą dwóch segmentów liniowych - grafika, geometria

mają dwa odcinki linii w przestrzeni, jak skonstruować powierzchnię z dwoma liniami jako granicą?

Odpowiedzi:

4 dla odpowiedzi № 1

Możesz to zrobić parametrycznie.

Dodaj dwa segmenty opisane przez:

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

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

gdzie {} wskazuje wielkości wektorowe, {a}, {b} stałe.

Następnie, dla każdego t masz dwa punkty w przestrzeni, po jednym w każdym segmencie.

Prostą linię między nimi można opisać przez:

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

Już prawie jesteśmy. Teraz piszemy funkcję opisującą powierzchnię, zastępując s1 i s2 ich wartościami:

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

HTH!

Edytować

Przykład:

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

tekst alternatywny

Inny przykład, pokazujący niepłaską powierzchnię:

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

tekst alternatywny


1 dla odpowiedzi nr 2

Oba segmenty liniowe muszą być współpłaszczyznowe(tj. obie leżą na powierzchni, którą chcesz zrekonstruować). Produkt krzyżowy dwóch segmentów linii da ci normalną powierzchnię (wektor prostopadły do ​​powierzchni).

To, czego nie jestem pewien w tym momencie, to to, co tyoznacza przez segmenty linii określające granicę. Jeśli końce segmentów linii są 4 punktami granicy kwadratu i chcesz je zmienić w podzieloną część, możesz interpolować między punktami narożnymi, aby uzyskać współrzędne siatki.