|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.01.2016, 04:54 | #31 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Ну вот как-то так.. Переписывать мне лень
Код:
|
06.01.2016, 15:49 | #32 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
Не очень знаю с++, но что значит eps, fabs, и line l?
То есть в условие if идет проверка на неравность переменной, что бы x1 и x2 не равнялись x. А дальше, fabs(l.a*p[k].x + l.b*p[k].y - l.c) < eps, это проверка уравнения прямой? Это вроде понятно. А что значит line l = line(p[i],p[j]); |
06.01.2016, 16:16 | #33 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
eps - переменная, обозначающая малую величину (имеющая малое значение).
fabs - функция взятия модуля числа (для вещественных чисел). line l - переменная типа line. line(p[i], p[j]) - конструктор класса line, принимающий 2 параметра.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
06.01.2016, 16:43 | #34 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
Спасибо.
Значит, это line l = line(p[i], p[j]); оглашение x1 и x2(их индекса в массиве). Тогда где в этом коде находится y1 и y2? Можете это перевести на Паскаль? fabs(l.a*p[k].x + l.b*p[k].y - l.c) < eps |
06.01.2016, 17:16 | #35 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Весь геом я всегда(почти всегда) писал структурами и функциями. Чем больше функций тем проще становится решать задачу..
Поэтому p[i], p[j] это элементы массива структур point - где уже есть x, y. Та строчка - fabs - модуль l - прямая p - точка. А так.. Подставляет точку в уравнение прямой. Если 0 - радуемся. Если не 0 - не лежит на нашей прямой. А вот fabs и eps просто проверяют с прогрешностью |
06.01.2016, 17:31 | #36 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
А можно написать код без этих структур? Не учил еще такого, да еще и на С++.
|
06.01.2016, 17:37 | #37 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Дак кто ж против. Правда это ужасно
Заведи массивы x, y. После первых двух циклов вычили a, b, c. Дальше подставляй точку и смотри |
06.01.2016, 18:05 | #38 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
А как можно просто из массива с точками, которые лежат на одной прямой, убрать повторения?
Ибо при проверке на уравнение прямой у меня выходит повторяются два раза те же точки, но в другом порядке? Просто убрать из массива точек, которые лежат на одной прямой, повторяющиеся? |
06.01.2016, 21:01 | #39 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
дак можно или вычитать или делить..
Вычитать вроде проще.. Ну а можешь удалять Сдигом.. Вроде сойдет.. По времени точно. И кажись эт правильно.. Но проще запоминать и проверять Хоть в set засунуть |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить, лежат ли точки на одной прямой Паскаль | anton.dasuik | Помощь студентам | 1 | 27.02.2013 22:52 |
Управление прямой вокруг точки Pascal ABC | Danise | Помощь студентам | 1 | 10.01.2012 00:53 |
Выяснить лежат ли точки на одной прямой | commander_spock | Помощь студентам | 10 | 20.10.2010 14:44 |
Определить Лежат ли точки на одной прямой | домик | Помощь студентам | 10 | 11.04.2010 20:12 |
Определить, лежат ли обе точки относительно прямой в одной полуплоскости - задача на С++. | Wia | Помощь студентам | 4 | 21.12.2008 02:06 |