एक बहुभुज के बाहर एक 3 डी सिलेंडर बनाना

वोट
0

मैं एक बहुभुज जो मैं एक उदाहरण के लिए एक बेलनाकार 3D वस्तु कन्वर्ट करने के लिए करना चाहते हैं:

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)

यहाँ

मैं कैसे मान 2 और 5 उदाहरण के लिए के साथ z- अक्ष जोड़ने के लिए चारों ओर मेरे सिर नहीं मिल सकता है:

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

यहाँ

मैं चेहरे रंग और जुड़े बनाने के लिए करना चाहते हैं। की तरह कुछ विकिपीडिया चित्र पर सिलेंडर , लेकिन स्वाभाविक रूप से गोल नहीं समाप्त होता है, लेकिन उन बहुभुज के बजाय। tringles3dया polygon3dकार्यों शायद रहे हैं अगर मैं RGL पैकेज का इस्तेमाल किया है कि मैं क्या इस्तेमाल करना चाहिए, लेकिन मुझे समझ नहीं आता कैसे पुनर्गठन करने के लिए अपने data.frame। मैं RGL में ऐसा करने की जरूरत नहीं है। यही कारण है कि सिर्फ आर पैकेज है जो इस कार्य के लिए सबसे व्यवहार्य लग रहा था था। मैं कैसे 3 डी सिलेंडर प्लॉट करने के लिए अपने डेटा पुनर्निर्माण करना चाहिए?

03/12/2019 को 00:00
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

आप उपयोग करने की आवश्यकता extrude3dएक अपने बहुभुज के "बाहर निकालना" बनाने के लिए। उदाहरण के लिए, के साथ xके रूप में प्रश्न में परिभाषित किया गया,

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

(कुछ मैनुअल रोटेशन के बाद) इस छवि का उत्पादन:

स्क्रीनशॉट

यह का उपयोग करता x[-1,]है, क्योंकि आप अंत में पहले सिरे दोहराया: यह अद्वितीय कोने चाहता है।

रंग अजीब की तरह है: प्रत्येक के अंत पर hexagons आकर्षित करने के लिए, rgl4 त्रिकोण खींचता है, और प्रत्येक रंग के प्रयोजन के लिए एक अलग चेहरे के रूप में व्यवहार किया जाता है। तुम वहाँ ठोस रंग चाहते हैं, तो याद रखें कि समाप्त होता है पहले तैयार कर रहे हैं: तो की तरह उपयोग कुछ

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

बजाय।

करने के लिए अन्य अजीब तर्क extrude3dहै thickness: बहुतल के बीच तैयार की है z=0और z=thickness। जब से तुम चाहते थे z5 करने के लिए 2 से, thickness3 है, और परिणाम z में 2 इकाइयों अनुवाद करने की आवश्यकता।

वहाँ भी है cylinder3d, जो ट्यूबलर संरचना पैदा करने के लिए प्रयोग किया जाता है, लेकिन extrude3dउपयोग करने के लिए आसान है अगर आप केवल अपने बहुभुज पक्षों के समकोण पर दो स्थानों पर दिखाना चाहते हैं।

03/12/2019 को 01:18
का स्रोत उपयोगकर्ता

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