2012-01-04 25 views
7

में 3 डी वक्र के रूप में मॉडलिंग हाथ आंदोलन मुझे अपनी समस्या के बारे में कुछ दिशाओं की आवश्यकता है, जहां देखना है, आदि .. मैं अपनी परियोजनाओं में से एक के लिए एक आंदोलन ट्रैकिंग दस्ताने का उपयोग कर रहा हूं, जो एक्स को वापस करता है, प्रत्येक उंगली और हथेली के लिए वाई और जेड मूल्य।मैटलैब/जावा

मैं करना चाहते हैं क्या पहले इन निर्देशांक, के आधार पर प्रत्येक उंगली आंदोलनों का प्रतिनिधित्व बनाते हैं और फिर हथेली के आंदोलन करने के लिए उनमें से प्रत्येक को देते हैं, हाथ का प्रतिनिधित्व करने के लिए है। एक बार जब मैं पहला प्रबंधन करता हूं तो यह दूसरा कदम आसान होगा, लेकिन ... मैं प्रबंधन नहीं करता हूं।

मैं इसे जावा (बेहतर विश्लेषण संभावनाओं) में लागू करने की कोशिश कर रहा हूं, लेकिन एक ही समय में सभी बिंदुओं के साथ एक 3 डी ग्राफ बनाने का प्रबंधन कर सकता हूं। और उनमें से लगभग 45,000 प्रत्येक वक्र में हैं, इसलिए ... क्या आपको कोई एनीमेशन की तरह इसे और अधिक बनाने का कोई विचार होगा, जैसा कि किसी दिए गए समय टी पर अपने XYZ निर्देशांक में एक बिंदु प्रदर्शित करने में है?

दूसरा सवाल यह है: क्या matlab वास्तव में इसके लिए सबसे अच्छा विकल्प है? मैं देखता हूं कि इस एनीमेशन को जावा में कैसे काम करना है, लेकिन मैंने कभी भी डेटा प्रबंधन के लिए जावा का उपयोग नहीं किया है, और मुझे संदेह है कि यह वास्तव में अच्छा है .. क्या कोई और सॉफ्टवेयर/भाषा है जो डेटा प्रबंधन में अच्छा होगा और इसे एनिमेट करेगा? या क्या मुझे एनीमेशन बनाने के लिए जावा का उपयोग करना चाहिए, और मैटलैब विश्लेषण करने के लिए?

धन्यवाद!

+0

मैटलैब आप जो पूछते हैं उस पर एक बहुत अच्छा काम करता है। हालांकि आपको matlab (ग्राफ़िक ऑब्जेक्ट) में उंगली का प्रतिनिधित्व करने के तरीके के बारे में अधिक जानकारी प्रदान करनी चाहिए। यह आसान है लेकिन आपको अधिक जानकारी प्रदान करनी चाहिए। – Jorge

+0

धन्यवाद! जो मैं खोज रहा हूं वह अक्ष/समन्वय के साथ एक 3 डी स्पेस है, और इस स्पेस में चलने वाला मूल बिंदु, किसी दिए गए टी के अनुरूप XYZ समन्वय में है। डॉट केवल अपने आप से आगे बढ़ेगा, या इंटरफ़ेस के माध्यम से नियंत्रित किया जाएगा (उदाहरण के लिए टी की पूरी श्रृंखला का प्रतिनिधित्व करने वाली स्क्रॉलिंग बार को स्थानांतरित करना)। दस्ताने पूरी उंगली के लिए केवल एक ही स्थिति रिकॉर्ड कर रहा है, इसलिए उनका प्रतिनिधित्व बहुत सरल है (एक डॉट प्रति उंगली) फिर से, यह संपूर्ण 3 डी एनीमेशन/इंटरफ़ेस नियंत्रण जावा के लिए बहुत अधिक उपयुक्त लगता है, लेकिन यदि कोई तरीका है Matlab में यह महान होगा –

उत्तर

2

आप निम्न कार्य कर सकते हैं। एक एनएक्स 3 मैट्रिक्स होने दें, जिसमें एन टाइम इंस्टेंस के लिए एक बिंदु के एक्स, वाई, जेड डेटा शामिल हैं। आप एक मुख्य स्क्रिप्ट लिखते हैं जो वर्र्स इत्यादि सेट करता है, और एक लूप टाइमर टी 1 बनाता है जो प्लॉटिंग फ़ंक्शन "डूप्लॉट" कहता है। मुख्य स्क्रिप्ट

clear all 
clc 

pos=rand(100,3)*10; %position matrix of random x,y,z coordinates. 100 time instances here 

ax=axes; 
set(ax,'NextPlot','replacechildren'); 
axis([0 10 0 10 0 10]); %set axis limits- fit to your needs 

Dt=0.1; %sampling period in secs 

k=1; 
hp=plot3(pos(k,1),pos(k,2),pos(k,3),'o'); %get handle to dot object 

t1=timer('TimerFcn','k=doPlot(hp,pos,t1,k)','Period', Dt,'ExecutionMode','fixedRate'); 
start(t1); 

इसके बाद आप अंकन समारोह doPlot बनाने के लिए, है,

function k=doPlot(hp,pos,t1,k) 

k=k+1; 
if k<length(pos) 
    set(hp,'XData',pos(k,1),'YData',pos(k,2),'ZData',pos(k,3)); 
    axis([0 10 0 10 0 10]); 
else 
    stop(t1) 
end 

आप में 3 डी बेतरतीब ढंग से अंतरिक्ष में aroung चलती एक बिंदु (चक्र) देखेंगे। एनीमेशन अवधि डीटी सेक (इस मामले में 0.1 सेकंड) है। आपको इसे अपनी जरूरतों के अनुरूप फिट करना होगा। यह Matlab में एक बुनियादी एनीमेशन है। आप और भी कर सकते हैं। यह आपकी जरूरतों पर निर्भर करता है।