Ортогональная и аксонометрическая проекция C# WinForms

Исходное задание на программу:

Создание ортогональной и аксонометрической проекции модели средствами базовой графики на языке C#

Описание программы:

Программа носит универсальный характер и подойдёт для построения любых моделей, точки которой заданы в таблицах программы или Excel’я. При изменении размеров окна меняется масштаб изображения. Такое дополнение реализовано на случай, если исходная модель имеет небольшой масштаб.

Фрагмент кода:

private void BuildAxonometry(object sender, EventArgs e)
        {
            try
            {
                IsBuild = true;

                int cX = (picAxon.Width > picAxon.Height) ? picAxon.Width : picAxon.Height;
                int cY = (picAxon.Width < picAxon.Height) ? picAxon.Width : picAxon.Height;

                int x0 = cX / 2;
                int y0 = cY / 2;

                Bitmap image = new Bitmap(picAxon.Width, picAxon.Height);
                Graphics g = Graphics.FromImage(image);
                Pen pen = new Pen(Color.Black);

                // xyz
                g.DrawString("X", new Font("Arial", 12.0f), new SolidBrush(Color.ForestGreen), new PointF(0, cY - 200));
                g.DrawString("Z", new Font("Arial", 12.0f), new SolidBrush(Color.ForestGreen), new PointF(cX / 2 + 10, 0));
                g.DrawString("Y", new Font("Arial", 12.0f), new SolidBrush(Color.ForestGreen), new PointF((float)(x0 * 2 - 30),
                    (float)(y0 - 175 + Math.Sin(rad) * cY)));

                // axis
                g.DrawLine(pen, x0, y0,
                  (float)(x0 - Math.Cos(rad) * 2000 * kSize),
                   (float)(y0 + Math.Sin(rad) * 2000 * kSize));
                g.DrawLine(pen, x0, y0, (float)cX / 2, 0);
                g.DrawLine(pen, x0, y0,
                    (float)(x0 + Math.Cos(rad) * 2000 * kSize),
                    (float)(y0 + Math.Sin(rad) * 2000 * kSize));

                pen = new Pen(Color.DarkBlue, 3);

                for (int i = 0; i < _lines.Count; i++)
                {
                    var point1 = _lines[i].point1;
                    var point2 = _lines[i].point2;

                    g.DrawLine(pen,
                        (float)(x0 - (Math.Cos(rad) * point1.X - Math.Cos(rad) * point1.Y) * scale),
                        (float)(y0 + (Math.Sin(rad) * point1.X + Math.Sin(rad) * point1.Y - point1.Z) * scale),
                        (float)(x0 - (Math.Cos(rad) * point2.X - Math.Cos(rad) * point2.Y) * scale),
                        (float)(y0 + (Math.Sin(rad) * point2.X + Math.Sin(rad) * point2.Y - point2.Z) * scale));
                }

                lblScale.Text = lblScale.Text.Substring(0, 6) + " " + Math.Round(scale, 2);

                picAxon.Image = image;
            }
            catch (Exception)
            { }
        }

Содержание архива:

  • Небольшой отчёт
  • Исходники программы на языке C# для Visual Studio

Присоединяйся

Зарегестрируйся с помощью социальных сетей.

Публикуй

Опиши работу, прикрепи файлы и назначь цену.

Зарабатывай

Получай пассивный доход с продажи работ.

Тебе понадобится 5 минут для публикации работы на сайте.
Купить

365,00 

(без учета комиссии 3,8 %)

ModelDesigner.rar
594128
Отчёт по работе.docx
192455
Оцени работу

рейтинг

Поделись работой с друзьями

Мы не грузим циферки, чтоб ты увидел контент как можно быстрее;

Комментарии (0)

kostyaLem

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегестрированые пользователи имеют возможность комментировать работы
Ортогональная и аксонометрическая проекция C# WinForms
Программа для построения ортогональной и аксонометрической проекции для каркасной модели на языке C#
Категория: Образование
Стоимость: 365,00