Нарисовать равнобедренную трапецию - C#

Узнай цену своей работы

Формулировка задачи:

Нужно нарисовать равнобедренную трапецию. Первая точка - верхняя левая вершина, потом, удерживая кнопку мыши, получаем правую нижнюю и при этом нам известен угол (считываем из TextBox'a). Т.е. должно выглядеть все примерно так, только всегда должна получаться равнобедренной с указанным углом при основании

Решение задачи: «Нарисовать равнобедренную трапецию»

textual
Листинг программы
 public partial class Form1 : Form
    {
        private List<Point> polygonPoints = new List<Point>();
        public Form1()
        {
            InitializeComponent();
        }
        private void TestForm_MouseClick(object sender, MouseEventArgs e)
        {
            switch (e.Button)
            {
                case MouseButtons.Left:
                   polygonPoints.Add(new Point(e.X, e.Y));
                    if (polygonPoints.Count > 1)
                    {
                       this.DrawPoligon(polygonPoints[polygonPoints.Count - 2], polygonPoints[polygonPoints.Count - 1]);
                    }
                    break;
 
                case MouseButtons.Right:
                    {
                        polygonPoints.Clear();
                        Graphics g = this.CreateGraphics();
                        g.Clear(Color.White); //  очистка, цвет можете указать любой
                    }
                    break;
            }
        }
 
        private void DrawPoligon(Point p1, Point p2)
        {
            Graphics G = this.CreateGraphics();
            Point p3 = new Point(p2.X-50,p1.Y);
            Point p4 = new Point(p1.X - 50, p2.Y);
            G.DrawLine(Pens.Black, p1, p3);
            G.DrawLine(Pens.Black, p3, p2);
            G.DrawLine(Pens.Black, p2, p4);
            G.DrawLine(Pens.Black, p1, p4);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы