मेरी स्क्रीन पर मेरे 3 अंक हैं:
a = a point which is (c.x, 0) makes a line pointing straight up
b = a user input touch, can be anywhere on the screen
c = a moving object
a
_______.________
| | |
| | |
| b | |
| . | |
| \ | |
| \ | |
| \| |
| | c |
|______._______|
मैंने कुछ लाइनें खींची हैं ताकि आप वैक्टर देख सकें।
मैं ए और बी के बीच के कोण को प्राप्त करने में सक्षम होना चाहता हूं। मैंने यह कोशिश की है, लेकिन यह काम नहीं करता है, क्या किसी को पता है कि मैं क्या गलत कर रहा हूं? "
//v1 moving object
float boxX = this.mScene.getLastChild().getX();
float boxY = this.mScene.getLastChild().getY();
//v2 user touch
float touchX = pSceneTouchEvent.getX();
float touchY = pSceneTouchEvent.getY();
//v3 top of screen
float topX = boxX;
final float topY = 0;
float dotProd = (touchX * topX) + (touchY * topY);
float sqrtBox = (touchX * touchX) + (touchY * touchY);
float sqrtTouch = (topX * topX) + (topY * topY);
double totalSqrt = sqrtBox * sqrtTouch;
double theta = Math.acos(dotProd / Math.sqrt(totalSqrt));
आमतौर पर मुझे जो उत्तर मिलता है वह 0 और 1 के बीच होता है। मैं इसे कैसे ठीक करूं ताकि मुझे डिग्री में कोण मिले?