Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2018, 19:50   #1
smegon
Новичок
Джуниор
 
Регистрация: 23.10.2018
Сообщений: 5
Восклицание Графика в PictureBox

Здравствуйте! Помогите решить задачу
Требуется разработать приложение, которое:
1. Обеспечивает возможность задания длин сторон треугольника (с проверкой возможности построения).
2. Выводит треугольник на экран.
3. Анимирует построение описанной окружности (рассмотреть остроугольный, тупоугольный и прямоугольный треугольник).
Не понимаю как строить треугольник зная только длины сторон. Пока написал программу которая строит по точкам (x,y)
Выглядит примерно так:
Код:
private: System::Void DoIt_Click(System::Object^  sender, System::EventArgs^  e) {
        int a, b, c;
        if ((b + c > a) && (a + c > b) && (a + b > c)) {
            points[0] = Convert::ToInt32(FirstPointX->Text);
            points[1] = Convert::ToInt32(FirstPointY->Text);
            points[2] = Convert::ToInt32(SecondPointX->Text);
            points[3] = Convert::ToInt32(SecondPointY->Text);
            points[4] = Convert::ToInt32(ThirdPointX->Text);
            points[5] = Convert::ToInt32(ThirdPointY->Text);
            pictureBox1->Refresh();
        }
        else
        {
            MessageBox::Show("Треугольник не существует", "Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Error);
        }
    }
    private: System::Void PaintIt(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {
        e->Graphics->DrawLine(System::Drawing::Pens::Red, points[0], points[1], points[2], points[3]);
        e->Graphics->DrawLine(System::Drawing::Pens::Red, points[2], points[3], points[4], points[5]);
        e->Graphics->DrawLine(System::Drawing::Pens::Red, points[4], points[5], points[0], points[1]);
smegon вне форума Ответить с цитированием
Старый 23.10.2018, 21:13   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от smegon Посмотреть сообщение
Не понимаю как строить треугольник зная только длины сторон.
На секунду подумал, что я такой старый... но глянул программу - оказалось нет, 7й класс школы "Построение треугольника по трем сторонам циркулем". А вы в какой класс ходите?
p51x на форуме Ответить с цитированием
Старый 23.10.2018, 21:21   #3
smegon
Новичок
Джуниор
 
Регистрация: 23.10.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
На секунду подумал, что я такой старый... но глянул программу - оказалось нет, 7й класс школы "Построение треугольника по трем сторонам циркулем". А вы в какой класс ходите?
Как это делается на бумаге я знаю. А вот кодом реализовать не могу, поэтому и прошу помощи. Хотя бы в общих словах на псевдокоде. Решение я себе представляю так - нужно центровать пикбокс, начертить самую длинную линию горизонтально, от неё двумя окружностями рассчитать точку пересечения двух остальных. Получим треугольник. И потом от него построить описанную окружность.
И проблема как раз в том, что я не знаю как кодом реализовать построение треугольника. Именно начертить самую длинную линию и рассчитать точку в которую пойдут остальные.
smegon вне форума Ответить с цитированием
Старый 23.10.2018, 21:31   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от smegon Посмотреть сообщение
И проблема как раз в том, что я не знаю как кодом реализовать построение треугольника.
Так вы ж сами чуть выше описали... Берем точку, например, (100, 100). Рисуем линию (100, 100) - (100+w1, 100). Находим точку пересечения и строим еще две линии. Проблема в чем?
p51x на форуме Ответить с цитированием
Старый 23.10.2018, 21:38   #5
smegon
Новичок
Джуниор
 
Регистрация: 23.10.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так вы ж сами чуть выше описали... Берем точку, например, (100, 100). Рисуем линию (100, 100) - (100+w1, 100). Находим точку пересечения и строим еще две линии. Проблема в чем?
Как найти ту самую точку к которой пойдут остальные линии?
smegon вне форума Ответить с цитированием
Старый 23.10.2018, 21:53   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Как точку пересечения. Вы же сказали, что знаете как это на бумаге...
p51x на форуме Ответить с цитированием
Старый 23.10.2018, 22:03   #7
smegon
Новичок
Джуниор
 
Регистрация: 23.10.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Как точку пересечения. Вы же сказали, что знаете как это на бумаге...
В коде циркулем не поводишь, нужна формула. Как это реализовать в коде?
smegon вне форума Ответить с цитированием
Старый 23.10.2018, 22:11   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Рано вам еще такие задачки решать. Сходите в класс 7й школы. Повторите формулу окружности хотя бы.
p51x на форуме Ответить с цитированием
Старый 23.10.2018, 22:19   #9
smegon
Новичок
Джуниор
 
Регистрация: 23.10.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Рано вам еще такие задачки решать. Сходите в класс 7й школы. Повторите формулу окружности хотя бы.
Мда, куча болтовни, помощи 0. ЧСВ поубавьте. Форум для того и создан, чтобы задать вопрос на который ты не знаешь ответ и получить его. А вы только и кидаетесь общими фразами, лучше бы просто прошли мимо, толку было бы столько же.
smegon вне форума Ответить с цитированием
Старый 24.10.2018, 18:17   #10
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

// Ух какой тяжелый минусомёт у кого то, сразу под два десятка пойнтов снёс. Ну чего, тогда пусть сами ищут формулы, раз моё готовое решение не понраву. //

Последний раз редактировалось jillitil; 24.10.2018 в 22:13.
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графика в PictureBox Morgan1222 C# (си шарп) 3 20.10.2014 18:01
Автоматическое изменение графика при переносе данных, формулы и графика на другой лист REztor Microsoft Office Excel 0 01.06.2013 18:01
построение графика в picturebox visual c++ василий- Помощь студентам 0 25.12.2012 18:52
PictureBox. C# Novi4ok_11 Помощь студентам 8 28.02.2011 18:24
PictureBox ne11son Общие вопросы .NET 0 14.03.2009 12:29