使用System.Math类(C#)中的方法计算三角形的面积

时间:2015-10-15 21:26:37

标签: c# class math methods geometry

我正在学习C#并发现了这个练习题:

编写一个程序,用以下给出的方法计算三角形的面积: 两边的长度和它们之间的角度(提示:侧角侧)

我知道如何在C#中找到三角形的区域,如果我有基数和高度,我知道有一种方法可以在.Math类中使用.Cos方法来获得我的余弦需要我的问题。但是,我的程序似乎不喜欢我使用的语法。我是否有任何关于如何在.Math类中实现方法的建议,以解决像这样的几何问题,它需要用户输入侧面,角度和另一面?

我知道公式是 c ^ 2 = a ^ 2 + b ^ 2 - 2ab * cos(y)//其中y =角度

这是我到目前为止所做的事情,我认为这将会解决我想要做的事情:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace day_of_the_week
{

    class Program

    {

        static void Main(string[] args)

        {

            double side1;
            double side2;
            double angle;

            Console.WriteLine("Enter one side length.");
            side1 = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter the other side's height.");
            side2 = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter the value of the angle.");
            angle = Convert.ToDouble(Console.ReadLine());

            double thirdside = Program.thirdside(side1, side2);
            Console.WriteLine(thirdside);
            Console.ReadLine();
            }
      public static double thirdside(double side1, double side2, double angle)
        {
            return (side1*side1 +  side2*side2 - 2*side1*side2.Cos(angle));
        }
        }
    }

3 个答案:

答案 0 :(得分:2)

通过调用Math.CosMath.Sqrt来实现您的功能,如下所示:

public static double rad(double deg)
{
    return deg * Math.PI / 180;  
}

public static double thirdside(double side1, double side2, double angleDeg)
{
    double angleRad = rad(angleDeg);
    return Math.Sqrt(side1*side1 + side2*side2 - 2*side1*side2*Math.Cos(angleRad));
}

请记住,您可能希望以度为单位输入角度。但是Math.Cos接受弧度的角度,因此转换。

问题中的代码忽略了表达式的平方根。这个答案中的代码是这样的。

答案 1 :(得分:0)

需要指定类。这是Math.Cos(angle)。也可以使用Math.Pow(side1, 2)对数字进行平方。

答案 2 :(得分:0)

请注意,三角形的区域是

0.5*side1*side2*sin(toRadians(angle))

如果angleside1side2之间的角度。