CPP/Math/Trig
From ProgrammingExamples
Trig.cpp
#include <cmath> #include <iostream> void TestAtan2(); int main() { TestAtan2(); double x1 = 0; double y1 = 0; double x2 = 100; double y2 = 100; std::cout << 180./3.14159 * atan((x2-x1)/(y2-y1)) << std::endl; return 0; } void TestAtan2() { // syntax is atan2(y,x) std::cout << "right: " << atan2(0,1) << std::endl; std::cout << "up right: " << atan2(1,1) << std::endl; std::cout << "up: " << atan2(1,0) << std::endl; std::cout << "up left: " << atan2(1,-1) << std::endl; std::cout << "left: " << atan2(0,-1) << std::endl; std::cout << "down left: " << atan2(-1,-1) << std::endl; std::cout << "down: " << atan2(-1,0) << std::endl; std::cout << "down right: " << atan2(-1,1) << std::endl; /* Output: right: 0 up right: 0.785398 up: 1.5708 up left: 2.35619 left: 3.14159 down left: -2.35619 down: -1.5708 down right: -0.785398 */ // -pi is left (-x direction), then moving counter clockwise, it sweeps a full circle back to pi }