Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/209: Рейтинг темы: голосов - 209, средняя оценка - 4.52
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60

Определить, лежат ли три данные точки на одной прямой

06.01.2013, 22:29. Показов 41249. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны координаты трёх точек: (x1,y1),(x2,y2),(x3,y3)
Гарантируется , что они различны (не совпадают).
Определить: лежат ли они на одной прямой.

Добавлено через 1 час 10 минут
Написал формулу: (((x2-x1)*(y3-y2))-((x3-x2)*(y2-y1)))=0
Исходя из того, что
(x2-x1;y2-y1) - координаты вектора первого
(x3-x2;y3-y2) - координаты вектора второго
А косое произведение векторов равно нуля когда вектора лежат на одной прямой.
Но вот и сразу нашёл контрпример: (-8;2),(-3;-3),(-5;-1)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2013, 22:29
Ответы с готовыми решениями:

Определить, лежат ли точки (a, b) и (c, d) на прямой L
Здравствуйте, необходима помощь в решении следующих задач: 1. Даны действительные числа a,b,c,d,s,t,u (s,t – одновременно неравны нулю)....

Определить, лежат ли точки на одной прямой
подскажите, я написал код, но если ввести координаты при которых точки не лежат на одной прямой, то он не выдает нужное мне сообщение var...

Выяснить лежат ли эти точки на одной прямой
Даны координаты трех точек на плоскости. Выяснить лежат ли эти точки на одной прямой. Вычисление расстояния между двумя точками оформить в...

16
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.01.2013, 23:10
Зачем вы векторы сюда приплели? Задача же в лоб решается. Берете любые две из этих точек, формируете уравнение прямой. Все три лежат на одной прямой тогда, и только тогда, когда третья точка удовлетворяет тому же уравнению.
0
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
06.01.2013, 23:37  [ТС]
Цитата Сообщение от HighPredator Посмотреть сообщение
Зачем вы векторы сюда приплели? Задача же в лоб решается. Берете любые две из этих точек, формируете уравнение прямой. Все три лежат на одной прямой тогда, и только тогда, когда третья точка удовлетворяет тому же уравнению.
А как решать по другому? Вывел уравнение прямой проходящей через 2 точки (приложение).
Если подставляю в неё вместо x и y, координаты 3 точки(x3,y3), то получается надо только проверить равенство.
Протестировал, выполняется, но всегда ли будет выполнятся эта формула?
Миниатюры
Определить, лежат ли три данные точки на одной прямой  
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.01.2013, 23:43
Цитата Сообщение от Андрей1992 Посмотреть сообщение
Если подставляю в неё вместо x и y, координаты 3 точки(x3,y3), то получается надо только проверить равенство.
Совершенно верно. Остается только проверить равенство нулю.
Цитата Сообщение от Андрей1992 Посмотреть сообщение
но всегда ли будет выполнятся эта формула?
А подумать? Вспомнить школьный курс? Понимаете ли вы, что если у вас есть уравнение прямой, это означает, что все точки, принадлежащие прямой, удовлетворяют данному уравнению?
2
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 806
14.02.2014, 18:06
Можете подсказать, какой геометрический смысл данной программы?С меня требуют именно ответ на этот вопрос!
0
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
14.02.2014, 19:00
Цитата Сообщение от sergei3ru Посмотреть сообщение
Можете подсказать, какой геометрический смысл данной программы?С меня требуют именно ответ на этот вопрос!
Попробуйте обратиться в мат. раздел
0
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 806
14.02.2014, 19:03
Уже обратился!
0
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
15.02.2014, 00:12
Цитата Сообщение от sergei3ru Посмотреть сообщение
Уже обратился!
Не помогли?
0
21 / 18 / 4
Регистрация: 07.04.2010
Сообщений: 806
15.02.2014, 00:15
Ответ один очень подходит:
Берёте за базовую одну из точек, отнимаете её координаты от двух других точек. Получаете два вектора. Если все три точки лежат на одной прямой, то x1/x2 = y1/y2 = z1/z2.

Вот это ответ очень похож на истину, как раз то, что она требуем, но у меня вопрос от куда появились координаты z1 и z2, если у нас точки и вектора на плоскости, а не в пространстве или я что-то путаю?
1
 Аватар для skuns
2 / 2 / 2
Регистрация: 28.12.2014
Сообщений: 44
01.01.2015, 17:44
Выполнил задание следующим образом:

Java
1
2
3
4
5
6
7
8
9
10
    // Лежат ли 3 точки на одной прямой
    public boolean isLine(Point o2, Point o3) {
        if ( ((this.x-o3.x)/(o2.x-o3.x)) == ((this.y-o3.y)/(o2.y-o3.y)) ) {
            System.out.println("Точки лежат на одной прямой.");
                return true;
        } else {
            System.out.println("Точки не лежат на одной прямой.");
            return false;
        }
    }
Миниатюры
Определить, лежат ли три данные точки на одной прямой  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.01.2015, 18:05
Вариант с делением самый плохой, поскольку в знаменателях может быть 0
0
 Аватар для skuns
2 / 2 / 2
Регистрация: 28.12.2014
Сообщений: 44
02.01.2015, 10:21
Спасибо, воспользуюсь предведущей формулой с умножением.

Java
1
2
3
4
5
6
7
8
9
10
    // Лежат ли 3 точки на одной прямой
    public boolean isLine(Point o2, Point o3) {
        if ( ((this.x-o3.x)*(o2.y-o3.y)) == ((o2.x-o3.x)*(this.y-o3.y)) ) {
            System.out.println("Точки лежат на одной прямой.");
                return true;
        } else {
            System.out.println("Точки не лежат на одной прямой.");
            return false;
        }
    }
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
04.01.2015, 18:40
У меня вопрос, а нельзя просто проверить длины отрезков? Т.е один из отрезков должен быть равен сумме других.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.01.2015, 18:43
Цитата Сообщение от Новичок Посмотреть сообщение
а нельзя просто проверить длины отрезков?
А кто сказал что это проще и быстрее? Нужно найти длины 3 отрезков и провести 3 сравнения.
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
04.01.2015, 18:46
Просто имхо, так проще. Все решения что выше, мне кажутся более сложными.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.01.2015, 18:47
Если даны координаты трех точек, то
Pascal
1
if (x1-x3)*(y2-y3)-(x2-x3)*(y1-y3)=0 then write('Точки лежат на одной прямой');
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
04.01.2015, 18:49
А, ну значит есть более простой путь чем мой. Я не знал такой формулы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2015, 18:49
Помогаю со студенческими работами здесь

Выяснить, лежат ли две точки в одной полуплоскости относительно заданной прямой
Даны действительные числа x, y. Точки с координатами (x,y),(x,y),(x,y) расcматриваются как вершины первого треугольника, точки с...

По координатам трех точек на плоскости определить, лежат ли они на одной прямой
По координатам трех точек на плоскости определить, лежат ли они на одной прямой.

Выяснить лежат ли точки на одной прямой. Типизированный файлы(тип запись и файлы)
Помогите,пожалуйста!!!.Как сделать проргармму через файлы и записи? Вычисление свойств. Дана последовательность (файл) точек плоскости...

По координатам трех точек на плоскости (в пространстве) определить, лежат ли они на одной прямой
По координатам трех точек на плоскости (в пространстве) определить, лежат ли они на одной прямой.помогите. пожалуйста

Определить лежат ли точки на одной окружности с центром в точке О
Заданы координаты двух точек. Определить лежат ли они на одной окружности с центром в точке О(х0, у0).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru