角度与弧度转换:C++ 标准库的三角函数(如sin、cos)默认使用弧度,需掌握角度转弧度的公式:
弧度 = 角度 × π / 180
基本三角函数计算:sin(正弦)、cos(余弦)、tan(正切)在几何计算中的应用(如求三角形边长、物体运动轨迹等)。
反三角函数:asin、acos、atan(求角度),用于根据边长反推角度。
几何应用:结合三角函数解决三角形、圆形等几何问题(如求两点间距离、判断点是否在圆内、计算多边形面积等)。
[C++] 纯文本查看 复制代码 #include <iostream>
#include <cmath> // 包含三角函数库
#include <iomanip> // 用于控制输出精度
using namespace std;
// 角度转弧度
double toRadian(double degree) {
return degree * M_PI / 180.0;
}
// 弧度转角度
double toDegree(double radian) {
return radian * 180.0 / M_PI;
}
int main() {
// 示例:已知三角形两边a、b和夹角C,求第三边c(余弦定理)
double a, b, C_degree;
cout << "输入三角形的两边长度和夹角(角度):" << endl;
cout << "边a = ";
cin >> a;
cout << "边b = ";
cin >> b;
cout << "夹角C(度) = ";
cin >> C_degree;
// 1. 角度转弧度(C++三角函数默认使用弧度)
double C_radian = toRadian(C_degree);
// 2. 应用余弦定理:c² = a² + b² - 2ab·cos(C)
double c = sqrt(a*a + b*b - 2*a*b*cos(C_radian));
cout << endl << "根据余弦定理计算:" << endl;
cout << "第三边c的长度 = " << fixed << setprecision(2) << c << endl;
// 3. 应用正弦定理验证:a/sin(A) = b/sin(B) = c/sin(C)
// 计算角A的正弦值
double sinA = a * sin(C_radian) / c;
// 防止精度问题导致sinA超出[-1,1]范围
sinA = max(min(sinA, 1.0), -1.0);
double A_degree = toDegree(asin(sinA)); // 反三角函数求角度
// 计算角B(三角形内角和为180度)
double B_degree = 180 - A_degree - C_degree;
cout << endl << "根据正弦定理验证:" << endl;
cout << "角A = " << fixed << setprecision(1) << A_degree << "度" << endl;
cout << "角B = " << fixed << setprecision(1) << B_degree << "度" << endl;
// 验证正弦定理比例是否相等(允许微小误差)
double ratio1 = a / sin(toRadian(A_degree));
double ratio2 = b / sin(toRadian(B_degree));
double ratio3 = c / sin(C_radian);
cout << endl << "正弦定理比例验证:" << endl;
cout << "a/sin(A) = " << fixed << setprecision(2) << ratio1 << endl;
cout << "b/sin(B) = " << fixed << setprecision(2) << ratio2 << endl;
cout << "c/sin(C) = " << fixed << setprecision(2) << ratio3 << endl;
return 0;
}
|