У меня есть программа C#, где мне нужно нарисовать некоторые простые 2D-объекты на холсте.Линии и фигуры, нарисованные под неправильными углами
Один из них включает в себя рисование прямоугольника и линий, где я знаю начальную точку, длину и я должен рассчитать конечную позицию. Поэтому у меня есть следующий код;
private void CalculateEndPoint()
{
double angle = Helper.deg2rad((double)this.StartAngle);
int x = this.StartPoint.X + (int)(Math.Cos(angle) * this.Length * -1);
int y = this.StartPoint.Y + (int)(Math.Sin(angle) * this.Length);
this.EndPoint = new Point(x, y);
}
Теперь это работает нормально, чтобы рассчитать конечные точки. Проблема у меня с углом (this.StartAngle), значение, которое я указываю, похоже, не так, как оно нарисовано, и у меня, похоже, есть следующее:
Где, как я ожидал 0 в верхней части, 90 справа, 180 на дно и т.д.
Таким образом, чтобы получить форму, чтобы рисовать прямо на холсте, я должен указать 90 градусов, где, как я мог бы ожидать, указать 180.
Я сделал что-то не так? Или это просто недостаток понимания?
Хороший код, спасибо. Но переменная «dec» не нужна! –
Да, я использовал его для тестирования. – Sakura