이론 관련/사진 광학 관련
삼각측량 소스코드...
구차니
2015. 10. 19. 12:30
대충 위키보고 짜고 성능은 나중에 생각하지 머..
국문위키에서 공식대로 따라가야 하는데
순서를 바꾸거나 생략할 수 있는 묘안이 없으려나?
$ ./a.out
alpha : 43.2 beta : 78.1 dist : 10 MC : 8.27144 |
$ cat tri.c
#include <iostream> #include <math.h> using namespace std; const double PI = 3.1415926535; double SIN(double val) { return sin(PI * val / 180.0); } double COS(double val) { return cos(PI * val / 180.0); } int main(int argc, char** argv) { double alpha; // servo angle (left) double beta; // servo angle (right) double gamma = 0.0; double AB; // distance of eye(10cm) double AC = 0.0; double BC = 0.0; double RC = 0.0; double MR = 0.0; double MC = 0.0; // result //alpha = 54; //beta = 54; //AB = 10;// cout << "alpha : "; cin >> alpha; cout << "beta : "; cin >> beta; cout << "dist : "; cin >> AB; gamma = 180 - (alpha + beta); AC = AB * SIN(beta) / SIN(gamma); BC = AB * SIN(beta) / SIN(gamma); RC = AC * SIN(alpha); MR = (AB / 2) - (BC * COS(beta)); MC = sqrt((MR * MR) + (RC * RC)); cout << "MC : " << MC << endl; } |
[링크 : https://en.wikipedia.org/wiki/Triangulation]
[링크 : http://linux.die.net/man/3/sin] 항상 그렇지만.. 라디안 값
[링크 : http://enter.tistory.com/60]