(तीन आयामों में) मैं उन वैक्टरों के अलावा अन्य जानकारी के बिना दो वैक्टरों के बीच हस्ताक्षरित कोण की गणना करने का एक तरीका ढूंढ रहा हूं। जैसा कि this question में उत्तर दिया गया है, वैचारिक लंबवत होने वाले विमान के सामान्य होने पर हस्ताक्षरित कोण की गणना करना काफी आसान है। लेकिन मुझे उस मूल्य के बिना ऐसा करने का कोई रास्ता नहीं मिल रहा है। ऐसा नहीं है कि दो वैक्टर के पार उत्पाद इस तरह के एक सामान्य पैदा करता है स्पष्ट है, लेकिन मैं इसके बाद के संस्करण का उपयोग कर जवाब निम्नलिखित विरोधाभास हुई:एक संदर्भ विमान के बिना दो वैक्टरों के बीच हस्ताक्षर कोण
signed_angle(x_dir, y_dir) == 90
signed_angle(y_dir, x_dir) == 90
जहाँ मैं दूसरा परिणाम नकारात्मक होने की अपेक्षा करेंगे।
signed_angle(Va, Vb)
magnitude = acos(dot(Va, Vb))
axis = cross(Va, Vb)
dir = dot(Vb, cross(axis, Va))
if dir < 0 then
magnitude = -magnitude
endif
return magnitude
मैं नहीं मानता dir कभी ऊपर नकारात्मक होगा: इस तथ्य यह है कि उत्पाद पार cross(x_dir, y_dir)
cross(y_dir, x_dir)
की विपरीत दिशा में है की वजह से है, सामान्यीकृत इनपुट के साथ निम्नलिखित psuedocode दिया।
मैंने सुझाए गए एटान 2 समाधान के साथ एक ही समस्या देखी है। बनाने के लिए
मैं एक तरह से तलाश कर रहा हूँ:
signed_angle(a, b) == -signed_angle(b, a)
यह नहीं है: http://www.jtaylor1142001.net/calcjat/Solutions/VDotProduct/VDPTheta3D.htm आप क्या देख रहे हैं? – Jack
उपरोक्त टिप्पणी में लिंक – ephere