Не могу рассчитать угол - C#
Формулировка задачи:
Нужно построить равнобедренную трапецию с указанным углом при основании
Проблема вот в чем: неверно считается угол (вроде как формула верная), т.е. если я ввожу угол 45°, углы при основании трапеции получаются ~60°, 20° ~ 13°, однако 90° строит верно
double angle = Convert.ToDouble(textBox1.Text) * Math.PI / 180; // узнаем угол и переводим его в радианы // pStart - левая верхняя вершина // pEnd - правая нижняя вершина h = Math.Abs(pEnd.Y - pStart.Y); // находим высоту b = a = h / Math.Sin(angle); // находим боковые стороны трапеции raznica = Math.Sqrt(a * a - h * h);// = (большее основание-меньшее основание) / 2 nl = pStart.X - 2*raznica; // координата по Х Нижней Левой вершины трапеции vp = pEnd.X - 2*raznica; // координата по Х Верхней Правой вершины трапеции Point point1 = new Point((int)vp, pStart.Y); // координата Нижней Левой вершины трапеции Point point2 = new Point((int)nl, pEnd.Y); // координата Верхней Правой вершины трапеции if (point1.X > pStart.X) { Point[] points = new Point[4] { pStart, point2, pEnd, point1 }; g.DrawPolygon(pen1, points); }
Решение задачи: «Не могу рассчитать угол»
textual
Листинг программы
double angle = Convert.ToDouble(textBox1.Text) * Math.PI / 180; // узнаем угол и переводим его в радианы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д