जीएलएम के साथ वेक्टर लंबाई प्राप्त करें


14

मैं इस बात पर काफी उलझन में हूं कि GLM लाइब्रेरी कैसे व्यवहार कर रही है या मैं इसे अनुचित तरीके से उपयोग कर रहा हूं।

glm::vec2 testVec(6,-4);

float len = testVec.length();

मुझे 2उपरोक्त कोड स्निपेट के साथ मूल्य मिलता है । मुझे विश्वास है कि मैं वेक्टर की लंबाई को परिभाषित करने की कोशिश कर रहा हूं testVec। आप अच्छी तरह जानते हैं कि यह वेक्टर की सही लंबाई नहीं है। मुझे यहां क्या समझ नहीं आ रहा है?

जवाबों:


15

ऐसे तुच्छ मुद्दे पोस्ट करने के लिए क्षमा करें दोस्तों! मसला हल हो गया। मैं गलत फ़ंक्शन का उपयोग कर रहा था। यहाँ सही एक जाता है:

glm::vec2 testVec(6,-4);
float len  = glm::length(testVec);

एक ही नाम के सदस्य समारोह घटकों की संख्या देता है बजाय (यानी vec2::lengthहमेशा निकलेगा 2, vec3::lengthहमेशा निकलेगा 3, आदि)।


7
माफी न मांगें, मुझे लगता है कि यह एक उचित सवाल है, यह देखते हुए कि जीएलएम का कार्य नामकरण यहां काफी भ्रामक है। मुझे उम्मीद है कि यह भविष्य में एक उपयोगी (और संक्षिप्त) संदर्भ हो सकता है।
मार्टिन एंडर

3
@MartinEnder यह GLM नहीं है, जो दोषी है: GLSL कल्पना इस भ्रम को अस्तित्व में रखती है: वहाँ के length(vecN)नि : शुल्क समारोह vecN, और vecN.length()विधि, के आयाम को लौटाने के लिए है vecN। See5.5 वेक्टर और स्केलर घटक और GLSL 4.60 कल्पना की लंबाई देखें ।
रुस्लान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.