আমার স্ক্রিনে আমার 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 এর মধ্যে হয় আমি কীভাবে এটি ঠিক করব যাতে আমি ডিগ্রিগুলিতে কোণ পাই?