2011-05-31 18 views
8

के साथ इंटरैक्टिव ग्राफिक्स विकसित करना मैं मैनिप्लेटिका के अलावा इंटरैक्टिविटी जोड़ना चाहता हूं, मैनिपुलेट के अलावा जो ठंडा है लेकिन इसकी सीमाएं हैं। गणित में चार क्यूब्स की समस्या के डेमो के चार उदाहरणों को सोचें, क्यूब्स में से एक पर एक क्लिक घन घुमाता है।मैथमैटिका और माउस लिस्टनर - एमएमए

प्रश्न।

  1. यह (अन्यथा एक जावा वर्ग का उपयोग कर या साथ उदाहरण के लिए?) मेथेमेटिका ग्राफिक्स में MouseEvents को पकड़ने के लिए

  2. संभव है या उपयोग जावा तो सलाह दी मार्ग जावा से मेथेमेटिका फोन है?

  3. या (मुझे आशा नहीं है) मैथमैटिका के साथ क्या करना चाहिए उससे परे इंटरैक्टिव ग्राफिक्स प्रोग्राम विकसित कर रहा है?

उत्तर

15

EventHandler (, माउस क्लिक किया है, माउस घसीटा माउस ऊपर, नीचे माउस) विभिन्न माउस की घटनाओं को पकड़ने के लिए इस्तेमाल किया जा सकता। कुछ बुद्धिमानी जोड़ने के लिए माउसपॉजिशन का प्रयोग करें।

उदाहरण:

DynamicModule[{col1 = Green, col2 = Blue}, Graphics[ 
    { 
    EventHandler[ 
    Dynamic[{col1, Disk[]}, 
    ImageSize -> 
     Tiny], {"MouseClicked" :> (col1 = 
     col1 /. {Red -> Green, Green -> Red})}], 
    EventHandler[ 
    Dynamic[{col2, Disk[{1, 1}]}, 
    ImageSize -> 
     Tiny], {"MouseClicked" :> (col2 = 
     col2 /. {Blue -> Yellow, Yellow -> Blue})}] 
    } 
    ] 
] 

enter image description here

हलकों स्वतंत्र रूप से क्लिक किया जा सकता। प्रत्येक ऑब्जेक्ट को अलग से परिभाषित किया जाता है।

आश्चर्यजनक रूप से, यह भी 3 डी ग्राफिक्स के लिए काम करता है:

DynamicModule[{col1 = Green, col2 = Blue}, 
Graphics3D[ 
    { 
    EventHandler[ 
    Dynamic[{col1, Sphere[]}, 
    ImageSize -> 
     Tiny], {"MouseClicked" :> (col1 = 
     col1 /. {Red -> Green, Green -> Red})}], 
    EventHandler[ 
    Dynamic[{col2, Sphere[{1, 1, 1}]}, 
    ImageSize -> 
     Tiny], {"MouseClicked" :> (col2 = 
     col2 /. {Blue -> Yellow, Yellow -> Blue})}] 
    } 
    ] 
] 

enter image description here

+1

कमाल। धन्यवाद। –

+2

@ ndroock1 मेरे उत्तर को स्वीकार करने के लिए धन्यवाद। अगली बार जब आप अधिक प्रतिक्रिया प्राप्त करने के लिए थोड़ी देर इंतजार कर सकते हैं। –

+2

Sjoerd, मैंने पहले ही इसके लिए मतदान किया है, लेकिन मैं अपडेट के लिए फिर से वोट दूंगा। मैंने पहले कभी नहीं देखा, घूमने योग्य और सब कुछ। :-) –

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