OpenCV 計算三角形的角度

2021-09-24 15:33:40 字數 1616 閱讀 4222

已知三角形的三個頂點,先計算每條邊的邊長,利用三角形的餘弦定理,使用反三角函式求出每個角的弧度值,再將弧度值轉化為角度值。

三角形的餘弦定理: 

cosa=(b^2+c^2-a^2)/2bc

cosb=(a^2+c^2-b^2)/2ac

cosc=(b^2+a^2-c^2)/2ab

弧度和角度轉換:

角度=弧度*180/pi

示例**: 

#include #include double getlength(cv::point pt1, cv::point pt2);

int main()

; for (int i = 0; i < 3; ++i)

//獲取三角形三邊的長度

double a, b, c;

a = b = c = 0.00;

a = getlength(point2, point1);

b = getlength(point3, point2);

c = getlength(point1, point3);

std::cout << "a:" << a << std::endl;

std::cout << "b:" << b << std::endl;

std::cout << "c:" << c << std::endl;

//獲取角度

double a, b, c;

a = b = c = 0.00;

a = std::acos((b*b + c*c - a*a) / (2 * b*c)) * 180 / 3.1415;

b = std::acos((a*a + c*c - b*b) / (2 * a*c)) * 180 / 3.1415;

c = std::acos((a*a + b*b - c*c) / (2 * a*b)) * 180 / 3.1415;

std::cout << "a:" << a << std::endl;

std::cout << "b:" << b << std::endl;

std::cout << "c:" << c << std::endl;

std::cout << "d:" << std::acos(0.5)*180/3.1415 << std::endl;

cv::imshow("srcimage", srcimage);

cv::waitkey(0);

cv::destroyallwindows();

return 0;

}//計算三角形的邊長

double getlength(cv::point pt1, cv::point pt2)

顯示結果: 

Js求角度 三角形 弧度計算

已知角度和斜邊,求直角邊 function hypotenuse long angle console.log hypotenuse 1,45 考慮以下三角形 我想計算角度x.我有以下內容 var opposite 2.5 var hypotenuse 5 var sinofanglex oppos...

python求三角形的角度

import math print 請輸入邊長a a float input 獲取邊長a print 請輸入邊長b b float input 獲取邊長b print 請輸入邊長c c float input 獲取邊長c if a b c and a c b and b c a 判斷三邊是否能構成三...

計算三角形面積

計算三角形面積 總時間限制 1000ms 記憶體限制 65536kb 描述平面上有乙個三角形,它的三個頂點座標分別為 x1,y1 x2,y2 x3,y3 那麼請問這個三角形的面積是多少。輸入輸入僅一行,包括6個單精度浮點數,分別對應x1,y1,x2,y2,x3,y3。輸出輸出也是一行,輸出三角形的面...