Создать класc Angle для роботы с углами на плоскости - C#
Формулировка задачи:
Создать класc Angle для роботы с углами на плоскости, задаваемими величиной в градусах и минутах. Обязательно должны быть реалезованы: перевод в радианы , приведение к диапазону 0-360, увеличение и уменшение угла на заданную величину, получение синуса , сравнение углов.
ребята помогите пожалуйста, очень - очень надо***((
Решение задачи: «Создать класc Angle для роботы с углами на плоскости»
textual
Листинг программы
using System;
class Angle
{
private int minutes; // Чтобы не заморачиватся с дробными числами, угол храню в минутах.
public Angle(int minutes) // Конструктор, принимающий значение в минутах.
{
this.minutes = minutes;
}
// Метод возвращает число в градусах.
public double GetDegrees()
{
double degrees = minutes / 60.0 % 360; // Приводим к диапозону от -360 до 360.
return degrees < 0 ? 360.0 + degrees : degrees; // Приводим градусы к диапазону 0-360.
}
// Метод возвращает число в радианах.
public double GetRadians()
{
return GetDegrees() * Math.PI / 180.0; // Приводим градусы в радианы.
}
// Метод получения синуса угла.
public double GetSinus()
{
return Math.Sin(GetRadians());
}
// Даем возможность суммировать углы. (К примеру a = b + c, где a, b, c - переменные типа Angle)
public static Angle operator +(Angle left, Angle right)
{
return new Angle(left.minutes + right.minutes);
}
// Даем возможность вычитать углы. (К примеру: a = b - c, где a, b, c - переменные типа Angle)
public static Angle operator -(Angle left, Angle right)
{
return new Angle(left.minutes - right.minutes);
}
// Следующие операторы дают возможность сравнить углы. (К примеру: a > b, где a, b - переменные типа Angle)
public static bool operator >(Angle left, Angle right)
{
return left.minutes > right.minutes;
}
public static bool operator <(Angle left, Angle right)
{
return left.minutes < right.minutes;
}
}