कैसे 3 डी में निर्दिष्ट किया ImageSize उपयोग करने के लिए मजबूर करने के लिए प्लॉट (मेथेमेटिका संस्करण: 8.0.4, विंडोज 7 पर)जब माउस का उपयोग कर एक छवि को घुमाने के लिए
कोई मुझे याद दिलाना कृपया सकते हैं एम नहीं बताने के लिए कैसे निम्नलिखित मामले में ImageSize को बदलने के लिए:
मेरे पास एक मैनिपुलेट है, जहां मैं ग्रिड बनाता हूं, और ग्रिड के अंदर, मैं या तो नियंत्रण विकल्प के आधार पर एक प्लॉट या 2 प्लॉट दिखाता हूं।
समग्र रूप से प्रदर्शित छवि को समान रखने के लिए, यदि मैं एक साजिश प्रदर्शित कर रहा हूं तो मैं एक आकार का उपयोग करता हूं, और यदि मैं 2 प्लॉट प्रदर्शित कर रहा हूं, तो मैं प्रत्येक प्लॉट के लिए आधे लंबाई का उपयोग करता हूं। अभी तक काफी आसान है।
अजीब बात यह है कि जब मैं एक साजिश के मामले को घुमाने के लिए माउस का उपयोग करता हूं, और फिर 2 प्लॉट पर वापस स्विच करता हूं, तो साजिश का आकार अब निर्दिष्ट छवि आकार का उपयोग नहीं करता है।
ऐसा लगता है कि एक साजिश को घुमाने के लिए माउस का उपयोग करके, यह उसी स्क्रीन स्थान पर दिखाए गए अगली साजिश को प्रभावित करता है।
SphericalRegion -> True
का उपयोग या नहीं, इसका कोई प्रभाव नहीं पड़ता है। RotationAction -> "Fit"
का उपयोग करने से कोई प्रभाव नहीं पड़ता है।
मेरा मतलब क्या है इसका एक छोटा उदाहरण है, और फिर मैं दिखाता हूं कि मैं वर्तमान में इस समस्या को कैसे हल करता हूं। लेकिन मैं ग्रिड के स्थान पर ग्राफिक्स ग्रिड का उपयोग करके इसे हल करता हूं। यदि संभव हो तो मैं ग्रिड का उपयोग करना चाहता था।
Manipulate[
Module[{opt = {Spacings -> {0, 0}, Frame -> All}, p,
size, data = Table[RandomReal[], {10}, {10}], wid = 300, len = 300},
size = If[choice == 1, {wid, len}, {wid, len/2}];
Print[size];
p = ListPlot3D[data,SphericalRegion->True,ImagePadding -> 10,ImageSize ->size];
If[choice == 1,
Grid[{{p}}, [email protected]], Grid[{{p}, {p}}, [email protected]]
]
],
Row[{SetterBar[Dynamic[choice], {1, 2}]}],
{{choice, 2}, None}
]
समस्या को पुन: उत्पन्न करने के लिए, सरल है: पहले मैं आकार को नोट करता हूं, इस तरह मैं इसे रखना चाहता हूं। अब मैं पसंद 1 पर क्लिक करता हूं, अब माउस का उपयोग करके मैं एक साजिश घुमाता हूं। अब मैं वापस जाने के लिए पसंद 2 पर क्लिक करता हूं, फिर मुझे लगता है कि साजिश का आकार ऐसा नहीं है जिसे मैं उम्मीद करता हूं।
मैं इसे एक विकल्प मैं उपयोग करने की आवश्यकता है यकीन है। बस इसे अभी तक नहीं मिला है।
ps। दरअसल, ऐसा लगता है कि, समान साजिश जो घुमाया गया था, सामग्री क्षेत्र पर रहता है, और दूसरे मामले में 2 भूखंडों में से एक के स्थान पर उपयोग किया जाता था। बहुत अजीब। मुझे कहीं मूर्खतापूर्ण कुछ करना होगा, क्योंकि यह बहुत अजीब है।
अद्यतन 2:48 बजे यह हेरफेर अभिव्यक्ति में Dynamic
का उपयोग कर के रूप में MrWizard से नीचे दिखाया गया है के जवाब में है। वी 8.04 पर, यह काम नहीं करता है। यहाँ कोड है:
Manipulate[
Module[{p, size, data = Table[RandomReal[], {10}, {10}], wid = 300,
len = 300},
size = If[choice == 1, {wid, len}, {wid, len/2}];
p = ListPlot3D[data, SphericalRegion -> True, ImagePadding -> 10,
ImageSize -> size];
If[choice == 1,
Grid[{{p}}],
[email protected][{{p}, {p}}]
]
],
Row[{SetterBar[Dynamic[choice], {1, 2}]}],
{{choice, 2}, None}
]
अद्यतन 03:03
यह नीचे ग्रिड रखकर काम करता है। ग्रिड के चारों ओर एक फ्रेम जोड़ना यह काम करता है। (माइक उत्तर के लिए धन्यवाद कि यह दिखाता है कि ग्रिड के बजाय फ़्रेम का उपयोग करके यह काम करता है, मुझे लगा कि मुझे ग्रिड के चारों ओर फ़्रेम जोड़ने का प्रयास करने दें)
लंबे समय तक मैथमैटिका का उपयोग करके मैंने देखा है कि सबसे अजीब चीज़ों में से एक :)
Manipulate[
Module[{p, size, data = Table[RandomReal[], {10}, {10}], wid = 300,
len = 300},
size = If[choice == 1, {wid, len}, {wid, len/2}];
p = ListPlot3D[data, SphericalRegion -> True, ImagePadding -> 10,
ImageSize -> size];
If[choice == 1,
[email protected][{{p}}],
Grid[{{p}, {p}}]
]
],
Row[{SetterBar[Dynamic[choice], {1, 2}]}],
{{choice, 2}, None}
]
धन्यवाद
मैंने पहले कुछ इस तरह देखकर याद करने लगते हैं, लेकिन मैं यह नहीं मिल सकता है। मुझे लगता है कि समाधान ग्राफिक्सग्रिड का उपयोग करने के लिए किया जा सकता है, लेकिन आप इसे नहीं चाहते हैं। आप 'Dynamic' दूसरे' Grid' को जोड़कर व्यवहार मुझे लगता है कि आप चाहते हैं प्राप्त कर सकते हैं, लेकिन मैं सच में समझ में नहीं आता कि यहाँ क्या हो रहा है, इसलिए मैं इस का पता लगाने की जरूरत है। –
श्री विज़ार्ड, हां, 'ग्राफिक्स ग्रिड' काम नहीं करेगा। माउस के साथ घुमा नहीं सकता है। दूसरे 'ग्रिड' में 'गतिशील' जोड़ने के बारे में अन्य टिप्पणी के लिए, मुझे यकीन नहीं है कि अब मैं समझता हूं। कहां ?, कोशिश की, इसे काम करने के लिए नहीं मिल रहा है। धन्यवाद। – Nasser
कम से कम v7 में, यह लाइन को पढ़ने के लिए काम करता है: 'ग्रिड [{{पी}}, अनुक्रम @ ऑप्ट], गतिशील @ ग्रिड [{{पी}, {पी}}, अनुक्रम @ ऑप्ट] '- भी , 'अनुक्रम @ x' 'x' के बराबर है; आप शायद 'अनुक्रम @@ x' चाहते हैं। वी 124 में –