Если вы хотите получить угол наклона мыши относительно центра, при использовании atan2 вы должны отсортировать:
ofDrawBitmapString("mouse angle: " + ofToString(ofRadToDeg(atan2(mouseY,mouseX)), 3),30,30);
Если вы хотите, чтобы вращение сравнивалось с другой точкой, не забудьте сначала выполнить вычитание между двумя точками (например, мышью, другой точкой).
Если вы хотите получить угол между двумя векторами в 3D ( ofxVec3f ), вам нужно нормализовать два вектора, а затем получить число точечного произведения между векторами
angle_in_radians = acos(v1.dot(v2))
изxVec3f уже предоставляет вам эту функцию, хотя методы angle () и angleRad () , где угол возвращает угол в градусах и angleRad в радианах.
Вот базовый тест, отображающий угол между двумя случайными векторами в консоли:
ofxVec3f v1(ofRandom(0,20),ofRandom(0,20),ofRandom(0,20));
ofxVec3f v2(ofRandom(0,20),ofRandom(0,20),ofRandom(0,20));
printf("v1(%f,%f,%f)\tv2(%f%f%f)\tangle:%f",v1.x,v1.y,v1.z,v2.x,v2.y,v2.z,v1.angle(v2));
//here's a test print: v1(10.333943,16.629400,5.899722) v2(3.60652910.2126262.595955) angle:12.418082