Tvorba 3D válec z polygonu

hlasů
0

Mám polygon, který bych chtěl převést do válcové 3D objekt pro ilustraci:

x <- structure(list(x = c(7.99, 6.25, -1.77, -1.8, -0.48, 3.93, 7.99
), y = c(2.84, 2.31, 2.43, 2.98, 3.19, 3.26, 2.84)), row.names = c(NA, 
7L), class = data.frame)

plot(x$x, x$y, type = n)
polygon(x$x, x$y, col = blue)
points(x$x, x$y)

zadejte

Nemůžu se dostat hlavu kolem, jak přidat osy z s hodnotami 2 a 5 jsou například:

library(rgl)
lines3d(x = rep(x$x, 2), y = rep(x$y, 2), z = rep(c(2, 5), each = nrow(x)))

zadejte

Rád bych, aby se tváře barevné a spojené. Něco jako válce na Wikipedii ilustracemi , ale samozřejmě ne kulatých koncích, ale ti polygonů místo. tringles3dnebo polygon3dfunkce jsou pravděpodobně to, co bych měl použít, pokud jsem použil RGL balíček, ale nechápu, jak restrukturalizovat můj data.frame. Nepotřebuju, aby to v RGL. To byl jen R balíček, který se zdálo nejschůdnější k tomuto zadání. Jak mám uspořádat své údaje k vynesení 3D válec?

Položena 03/12/2019 v 00:00
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Budete muset použít extrude3dk vytvoření „vytlačování“ vašeho polygonu. Například, se x, jak je definováno v otázce,

x[-1,] %>% 
  extrude3d(thickness = 3, material = list(col = rainbow(14)),
            meshColor = "faces") %>%
  translate3d(x = 0, y = 0, z = 2) %>%
  shade3d()

produkuje tento obrázek (po nějaké ruční otáčení):

Snímek obrazovky

Využívá x[-1,], protože se opakoval první vrchol na konci: chce jedinečných vrcholů.

Zbarvení je druh zábavný: kreslit šestiúhelníků na každém konci, rglkreslí 4 trojúhelníky, a každý z nich je považován za samostatný ploše pro účely barvení. Pokud chcete, plné barvy tam, pamatujte, že konce jsou vypracovány jako první: to použít něco jako

material = list(col = rainbow(8)[c(1,1,1,1,2,2,2,2:8)])

místo.

Druhý funny argument extrude3dje thickness: polyhedron je natažený mezi z=0a z=thickness. Vzhledem k tomu, jste chtěli zod 2 do 5, thicknessje 3, a výsledek musí být přeloženy do 2 jednotek v Z.

K dispozici je také cylinder3d, který se používá pro generování trubkovité struktury, ale extrude3dje jednodušší použít, pokud chcete pouze svůj polygon se objeví na dvou místech v pravém úhlu do stran.

Odpovězeno 03/12/2019 v 01:18
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more