2012-01-01 14 views
10

मैं गणित 8 का उपयोग कर रहा हूं और मैं बनावट के साथ संघर्ष कर रहा हूं। हालांकि पॉलीहेड्रल ऑब्जेक्ट्स का टेक्सचरिंग अपेक्षाकृत सरल साबित हुआ है, लेकिन मैंने एक क्षेत्र बनाने की कोशिश में एक समस्या को मारा। प्रलेखन में, दिखाए गए क्षेत्र को बनावट का एकमात्र तरीका SphericalPlot3D का उपयोग कर रहा है, जो, आईएमएचओ, एक क्लुजी समाधान है, खासकर जब से मैं क्षेत्र पर संचालन (उदाहरण: अनुवाद) करने की कोशिश कर रहा हूं। में, मेरा प्रश्न है: क्या क्षेत्रफल आदिम बनावट करने का कोई तरीका है?एक क्षेत्र बनाम आदिम

+0

संबंधित: [यूनिट क्षेत्र की सतह पर क्षेत्रप्लॉट?] (Http://stackoverflow.com/q/5788842/616736) और [आप गणित में ठीक से प्रदर्शित करने के लिए कस्टम 3 डी ग्राफिक्स कैसे प्राप्त करते हैं?] (Http: //stackoverflow.com/q/5603281/616736) – abcd

उत्तर

11

आप सीधे Sphere बनावट नहीं बना सकते हैं, लेकिन आप एक बनावट बनाकर बना सकते हैं उदा। SphericalPlot3D और एक प्राथमिक प्राप्त करने के लिए पहले भाग निकालें जिसे आप Translate के साथ जोड़ सकते हैं। उदाहरण

लिए
sphere = SphericalPlot3D[1, th, phi, Mesh -> False, PlotPoints -> 25, 
    PlotStyle -> {Opacity[1], Texture[ExampleData[{"ColorTexture", "GiraffeFur"}]]}, 
    TextureCoordinateFunction -> ({#4, #5} &)][[1]]; 

Graphics3D[Translate[sphere, {{0, 0, 0}, {2, 2, 2}}]] 

textured spheres

6

कुछ इस तरह उपयोगी होगा:

enter image description here

enter image description here

sphere = SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi}, 
          TextureCoordinateFunction -> ({2 #5, 1 - 2 #4} &), 
          PlotStyle -> { Lighting -> "Neutral", Axes -> False, 
          Boxed -> False, Texture[texture]},  Mesh -> None][[1]]; 

F[k_] := Graphics3D[ Rotate[ sphere, k, {2, 1, 6}, {0, 0, 0}], Boxed -> False] 

अब, हम (वेक्टर {2, 1, 6} बिंदु {0,0,0} पर लंगर डाले चारों ओर) एक बनावट क्षेत्र घूर्णन चेतन कर सकते हैं:

Animate[F[k], {k, 0, 2 Pi}] 

enter image description here

+1

नहीं, यही वह है जो मैंने करने में कामयाब रहा ... मैं क्षेत्र [] फ़ंक्शन द्वारा उत्पादित एक क्षेत्र * आदिम * बनाना चाहता हूं। – taktoa

+4

'क्षेत्र []' पर बनावट को लागू करना वर्तमान में संभव नहीं है। –

3

बस पूर्णता के लिए, आप भी ParametricPlot3D का उपयोग कर बनावट के साथ क्षेत्रों उत्पन्न कर सकते हैं।

map = ExampleData[{"TestImage", "Lena"}]; 
sphere = ParametricPlot3D[{Cos[u] Sin[v], Sin[u] Sin[v], Cos[v]}, {u, 
    0, 2 Pi}, {v, 0, Pi}, Mesh -> None, 
TextureCoordinateFunction -> ({#4, 1 - #5} &), 
Lighting -> "Neutral", Axes -> False, Boxed -> False, 
PlotStyle -> Texture[Show[map]]] 

lenasphere

अगर मैं सही ढंग से समझ, हीके के जवाब से पता चलता है कि परिणाम के पहले भाग एक GraphicsComplex है, जो एक ग्राफिक्स आदिम है।

संबंधित मुद्दे