Bir poligonun dışına 3D silindir yapma

oy
0

I resmi için, silindirik bir 3D nesne dönüştürmek istiyorum bir çokgen vardır:

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)

Burada

Ben mesela değerler 2 ve 5 z ekseni eklemek için etrafında başımı alamıyorum:

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

Burada

Ben renkli ve bağlı yüzleri yapmak istiyorum. Böyle bir şey Vikipedi çizimler üzerinde silindir yerine, fakat doğal olarak yuvarlak değil biter, ancak bu poligon. tringles3dveya polygon3dfonksiyonlar ı rgl paket kullanılırsa kullanmam gerektiğini muhtemelen, ama nasıl yeniden yapılandırmak benim data.frame anlamıyorum. Ben rgl bunu gerekmez. Yani bu görev için en uygun görünüyordu sadece R paketi oldu. Nasıl 3D silindir çizmek için verilerimi yeniden organize edilmelidir?

Oluştur 03/12/2019 saat 00:00
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Sen kullanmak zorunda extrude3dsenin çokgenin bir "ekstrüzyon" oluşturun. Örneğin, birlikte xsöz konusu tanımlanan

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

(Bazı elle rotasyonu sonra) bu görüntüyü verir:

ekran görüntüsü

Bu kullanır x[-1,]Sonunda, ilk köşe tekrarladı çünkü: bu eşsiz köşe istiyor.

Her ucunda altıgenler çizmeye: boyama komik türüdür rgl4 üçgen çizer ve her boyama amacıyla ayrı bir yüzü olarak değerlendirilir. Orada düz renkler istiyorsanız, uçları ilk çizilir unutmayın: gibi kullanım şey öylesine

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

yerine.

Diğer komik argüman extrude3dolduğunu thickness: polihidron arasına çekilir z=0ve z=thickness. İstediğin yana z2'den 5'e, thickness3, ve sonuç z 2 birimleri yukarı çevrilmesi gerekir.

Orada da var cylinder3dtübüler yapılar üretmek için kullanılan, ancak extrude3dyalnızca poligon kenarlarına dik açılarda anda iki yerde gösterilmesini istiyorsanız kullanımına basittir.

Cevap 03/12/2019 saat 01:18
kaynak kullanıcı

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