Нарисуйте треугольник, зная его стороны - PullRequest
0 голосов
/ 08 января 2020

Давайте получим треугольник со сторонами AB = 80, B C = 50, CA = 40. Необходимо нарисовать треугольник, стороны которого были бы равны этим значениям. Попытался сделать это через AddPolygon, но я думаю это не совсем правильное решение

private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            if (index == 1) 
            {
                Point[] myArray =
             {
                 new Point(80, 50),
                 new Point(50, 40),
                 new Point(40, 80),
             };

                GraphicsPath Path = new GraphicsPath();
                Path.AddPolygon(myArray);

                Pen P = new Pen(Color.Black, 5);
                e.Graphics.DrawPath(P, Path);
            }
        }

1 Ответ

0 голосов
/ 08 января 2020

Так как числа представляют длины, а не координаты, они не могут использоваться непосредственно в API: перед началом рисования необходимо выполнить некоторые математические операции.

Сначала давайте определимся с расположением и ориентацией нашего треугольника: вершина A будет на (0, 0), а сторона AB будет l ie на оси X, поэтому точка B будет на (80, 0). Теперь все дело в выяснении местоположения точки C. Вы можете понять это, решив два уравнения вместе:

(x-80) 2 + y 2 = 40 2 x 2 + y 2 = 50 2

Математика достаточно проста для семиклассника, который хорош в математике, поэтому я бы не стал утомил вас решением. Это дает x=45.62 и y=20.45. Вставьте эти числа в свою программу, чтобы нарисовать свой треугольник.

Очевидно, этот треугольник dr aws имеет только одну простую ориентацию. Чтобы переместить треугольник, отрегулируйте координаты его вершин на одно и то же число. Вращение намного сложнее; вам нужно поискать его в вашей любимой книге по аналитике c геометрии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...