![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
![]()
Здравствуйте уважаемые гуру. Столкнулся с такой проблемой:
Постановка задачи: На геометрической плоскости дано множество точек. Координаты точек хранятся в текстовом файле. В первой строке файла содержится количество точек. Во второй и последующих строках записаны координаты точки по оси Ox и Oy. Программа должна решить поставленную задачу и нарисовать на экране заданное множество точек и решение. Задача: Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количеством точек лежащих внутри и вне треугольника с вершинами в данных точках. Код:
Сразу вопрос №1: координаты лучше записать в массив? Если да, то в какой? вопрос № 2: как проще нарисовать точки на экране? С помощью канвы? С помощью канвы пробовал, точки получаются очень очень мелкие, как увеличить размер не знаю, чтобы было их хорошо видно. вопрос № 3: Для решения буду перебирать всевозможные комбинации точек. Какой же написать условие в теле цикла, для отбора нужных трёх точек? Заранее всем мой молодёжный РЕСПЕКТ! Я очень надеюсь на вашу помощь. Последний раз редактировалось beygul; 23.03.2014 в 18:40. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
дисклаймер.
так, всё, что далее я скажу - это сугубо моё личное субъективное мнение (IMHO), могу сильно ошибаться. Цитата:
Какой взять массив?... ну, если максимальное число точек задано и оно НЕ ОЧЕНЬ огромное, то я бы взял статический массив, иначе, динамический массив Вам в помощь: Код:
Код:
Код:
Код:
перебор такой - нужно брать по три точки из всех имеющихся, первым делом проверять, возможно ли построить треугольник на данных трёх точках, если возможно, то для всех оставшихся точек проверять, попадают ли они в полученный треугольник или нет, в зависимости от этого наращивать счётчик попавших в треугольник и счётчик не попавших в треугольник. Если разница между данными счётчиками меньше, чем запомненная величина, что запомнить эту разницу и координаты трёх точек, которые нам дали эту величину. Повторить цикл для всех точек. вывести результат. Поиском по форуму Вы легко найдёте код перебора трёх точек из всех возможных (если самостоятельно написать возникнут затруднения) и легко находится функция проверки попадания точки в треугольник. ну, как то так. Успехов! |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
решение задачи в Pascal - Проверить принадлежность точки с заданными координатами кругу с заданным радиусом и координатами центра | Екатерина23 | Помощь студентам | 1 | 05.12.2013 16:35 |
Запрет ввода в TextBox букв и . (точки) / Или автозамена точки на запятую | uralshans | Microsoft Office Excel | 4 | 30.08.2013 00:24 |
как нарисовать точки | mindi | Компоненты Delphi | 1 | 06.05.2010 14:46 |
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? | Rin | Мультимедиа в Delphi | 2 | 10.11.2009 22:47 |
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть | Дикий | Помощь студентам | 7 | 12.05.2008 17:57 |