2016-03-06 8 views
8

मैं किसी ऑब्जेक्ट पर बल लागू करने का प्रयास कर रहा हूं। इसे कोण में स्थानांतरित करने के लिए जो मेरा माउसपॉइस ऑब्जेक्ट के सापेक्ष उत्पन्न कर रहा है।Matter.js गणना बल की आवश्यकता

मैं कोण

targetAngle = Matter.Vector.angle(myBody.pos, mouse.position); 

अब मैं, एक बल लागू शरीर है कि कोण के साथ स्थानांतरित करने के लिए प्राप्त करने के लिए की जरूरत है। मैं लागू फ़ोर्स विधि के लिए नीचे दिए गए मानों में क्या डालूं?

// applyForce(body, position, force) 

    Body.applyForce(myBody, { 
    x : ??, y : ?? 
    },{ 
    x:??, y: ?? // how do I derive this force?? 
    }); 

क्या कर रहा x और यहाँ y मूल्यों में डाल माउस और शरीर के बीच के कोण के साथ स्थानांतरित करने के लिए शरीर पाने के लिए।

उत्तर

2

उस दिशा में अपनी वस्तु को स्थानांतरित करने के लिए बल लागू करने के लिए आपको रेडियंस में कोण के साइन और कोसाइन लेने की आवश्यकता है। आप टोक़ (रोटेशन) लागू नहीं करने के लिए पहले वेक्टर के रूप में ऑब्जेक्ट की स्थिति को पास करना चाहते हैं।

var targetAngle = Matter.Vector.angle(myBody.pos, mouse.position); 
var force = 10; 

Body.applyForce(myBody, myBody.position, { 
    x: cos(targetAngle) * force, 
    y: sin(targetAngle) * force 
}); 

इसके अलावा अगर आप इसे ज़रूरत है, applyForce() पर डॉक्स here हैं।

(मैं समझता हूँ कि इस सवाल पुराना है, मैं और अधिक या कम किसी को भी, जो इसे भर में ठोकर के लिए यह कर रहा हूँ)

+1

यह सहायक है, लेकिन रोटेशन क्या है? क्या वह माउसएक्स और माउसवाई में दिशा के रूप में फ़ीड नहीं करना चाहता था। 180 के बाद भी आप कुछ अर्ध-कॉलन चूक गए। अगर यह विकी या उदाहरणों में था तो अच्छा होगा। –

+0

मेरा बुरा, यह इंगित करने के लिए धन्यवाद। – brennanenanen

+1

मुझे लगता है कि आपका 'theta' चर' targetAngle' जैसा ही है। तो आप केवल लक्ष्य को 'कोसाइन()' और 'साइन()' कार्यों में लक्षित कर सकते हैं। –

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