计算三角形的第三边
Calculating the 3rd side of triangle
我正在用 C# 创建一个程序,但我无法弄清楚到底发生了什么以及为什么第 3 面计算不正确
这是我用来计算的 http://www.mathsisfun.com/algebra/trig-solving-sas-triangles.html
这就是我的
private void button1_Click(object sender, EventArgs e)
{
const double TRIANGLE_DEGREES = 180.0;
string userEntry = string.Empty;
// Get angle 1 and assign to variable
userEntry = tbAngle3.Text;
int angle3 = int.Parse(userEntry);
// Get side 1 and assign to variable
userEntry = tbSide1.Text;
int side1 = int.Parse(userEntry);
// Get side 2 and assign to variable
userEntry = tbSide2.Text;
int side2 = int.Parse(userEntry);
// Figure out side 3 and assign to a variable
double side3 = Math.Sqrt(side1 * side1 + side2 * side2 - 2 * side1 * side2 * Math.Cos(angle3));
// Display side 3
textSide3.Text = string.Format("{0}", side3);
}
其实很简单,不是来自你的算法。 Math.Cos
采用 弧度 的角度,而您使用的是度数。进行转换(角度 * Pi/180),它将起作用:
double side3 = Math.Sqrt(side1 * side1 + side2 * side2 - 2 * side1 * side2 * Math.Cos(angle3 * (Math.PI / 180)));
修改的部分只有Math.Cos
,变成了Math.Cos(angle3 * (Math.PI / 180)))
它很容易被忽略,但正如文档所述(强调我的):
(double d):double
Returns the cosine of the specified angle
d: An angle, measured in radians
我正在用 C# 创建一个程序,但我无法弄清楚到底发生了什么以及为什么第 3 面计算不正确
这是我用来计算的 http://www.mathsisfun.com/algebra/trig-solving-sas-triangles.html
这就是我的
private void button1_Click(object sender, EventArgs e)
{
const double TRIANGLE_DEGREES = 180.0;
string userEntry = string.Empty;
// Get angle 1 and assign to variable
userEntry = tbAngle3.Text;
int angle3 = int.Parse(userEntry);
// Get side 1 and assign to variable
userEntry = tbSide1.Text;
int side1 = int.Parse(userEntry);
// Get side 2 and assign to variable
userEntry = tbSide2.Text;
int side2 = int.Parse(userEntry);
// Figure out side 3 and assign to a variable
double side3 = Math.Sqrt(side1 * side1 + side2 * side2 - 2 * side1 * side2 * Math.Cos(angle3));
// Display side 3
textSide3.Text = string.Format("{0}", side3);
}
其实很简单,不是来自你的算法。 Math.Cos
采用 弧度 的角度,而您使用的是度数。进行转换(角度 * Pi/180),它将起作用:
double side3 = Math.Sqrt(side1 * side1 + side2 * side2 - 2 * side1 * side2 * Math.Cos(angle3 * (Math.PI / 180)));
修改的部分只有Math.Cos
,变成了Math.Cos(angle3 * (Math.PI / 180)))
它很容易被忽略,但正如文档所述(强调我的):
(double d):double
Returns the cosine of the specified angle
d: An angle, measured in radians