powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Три точки на прямой
25 сообщений из 41, страница 1 из 2
Три точки на прямой
    #39478772
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, как определить, лежат ли три точки на прямой ?
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478774
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложи линейку к монитору =). (реально самый простой способ)

Ну а если серьезно вспоминает теорему пифагора и применяем ее на практике.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478775
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посчитать векторное произведение векторов 1->2 и 1->3 и сравнить с нулём.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478776
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вариант - проверить, что длина максимального из 3 возможных отрезков равна сумме длин остальных двух.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478778
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПосчитать векторное произведение векторов 1->2 и 1->3 и сравнить с нулём.
Проще нормализовать и сравнить с точки зрения реализации.

Ну а мне больше нравится вариант с теоремой Пифагора которая намекает на соотношение катетов к гипотенузе.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478780
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В гугле забанили? тынц
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478787
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПосчитать векторное произведение векторов 1->2 и 1->3 и сравнить с нулём.
По какой формуле? )))
Какое реение лучше и быстрее всего? ))
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478789
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Векторное произведение лучше
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478803
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилRMagistr2015,

Векторное произведение лучше
А формула есть? ))
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478816
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015ИзопропилRMagistr2015,

Векторное произведение лучше
А формула есть? )) http://lmgtfy.com/?iie=1&q=векторное произведение
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478852
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneRMagistr2015пропущено...

А формула есть? )) http://lmgtfy.com/?iie=1&q=векторное произведение
Спасибо ))))
Ну я вот что-то не нашёл (((
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478874
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Barloneпропущено...
http://lmgtfy.com/?iie=1&q=векторное произведение
Спасибо ))))
Ну я вот что-то не нашёл (((
это же в школе вроде изучают?
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478944
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015Ну я вот что-то не нашёл Не верю! (с)
...
Рейтинг: 0 / 0
Три точки на прямой
    #39478994
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расстояние между парой точек должно быть равно сумме расстояний между прочими
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479099
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийРасстояние между парой точек должно быть равно сумме расстояний между прочими
запиши это на GLSL
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479105
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если (y1=y2=y3) или (x1-x2)/(y1-y2)=(x2-x3)/(y2-y3) то они лежат на 1 прямой.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479124
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще все.
Есть точки A, B, C, где B посередине.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Width AB  = X B  - X A 
Height AB  = Y B  - Y A 
...
if(Width AB  + Width BC  == Width AC  && Height AB  + Height BC  == Height AC ) {
  ... на прямой
} else {
  ... не на прямой
}

Если координаты double, то добавить учет погрешности
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479131
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesесли (y1=y2=y3) или (x1-x2)/(y1-y2)=(x2-x3)/(y2-y3) то они лежат на 1 прямой.
ещё проверь, что в знаменателе не 0.


Dima TПроще все.
без условного оператора получится?


Ещё раз всем фантазёрам - запишите тест на GLSL(или в командах SSE)
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479159
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDima TПроще все.
без условного оператора получится?
Код: plaintext
1.
bool is_direct = Width AB  + Width BC  == Width AC  && Height AB  + Height BC  == Height AC ;

Изопропилзапишите тест на GLSL(или в командах SSE)
GLSL как понимаю это OpenGL, ТС его не упоминал. Он вообще ЯП не упоминал, поэтому SSE тоже под вопросом.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479171
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

значит сразу нужно чисто делать
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479173
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли координаты double, то добавить учет погрешности А вот это важно. Т.е. образно говоря, двумерная площадь треугольника о-о-очень маленькая, даже если математически треугольник равносторонний.

Проще все А если они в 123-мерном пространстве?
academic_ru Размерности, не равные трём
Пусть D — размерность пространства.
Векторное произведение, обладающее всеми свойствами обычного трёхмерного векторного произведения,
то есть бинарное билинейное антисимметричное невырожденное отображение
\mathbb{R}^D \times \mathbb{R}^D \to \mathbb{R}^D,
можно ввести только для размерности 3.

Однако есть простое обобщение на остальные натуральные размерности, начиная с 3,
а если нужно — и на размерность 2 (последнее, правда, сравнительно специфическим образом).

Тогда это обобщение, в отличие от невозможного, описанного чуть выше,
вводится не для пары векторов, а лишь для набора (D - 1) векторов-сомножителей.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479258
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилзначит сразу нужно чисто делать Универсально и масштабируемо в N-мерном Евклидовом пр-ве над полем действительных чисел
а) выше было: проверить неравенство треугольника или сумму и разность сторон.
б) "в лоб" для уравнения прямой X= А+АВ*t найти точку Х= проекции т. С на эту прямую, затем длину отрезка |С Х|. В идеале длина == 0

Оба варианта - с учётом погрешности вычислений.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479299
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98А если они в 123-мерном пространстве?
Это сложение векторов, если математику не забыл. Без разницы сколько измерений, только название переменных сменить с Width, Height на Измерение1, Измерение2 ... Измерение123.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479464
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты будешь среднюю точку выбирать? (я-то знаю)
В лобовом решении недостаток только один: квадратное ур--ние по t -- это один раз sqrt(), зато резалт сразу записывается одной формулой. Кол-во букв в программе не зависит от размерности без всяких ухищрений.
...
Рейтинг: 0 / 0
Три точки на прямой
    #39479472
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98А как ты будешь среднюю точку выбирать? (я-то знаю)
В лобовом решении недостаток только один: квадратное ур--ние по t -- это один раз sqrt(), зато резалт сразу записывается одной формулой. Кол-во букв в программе не зависит от размерности без всяких ухищрений.
Никаких корней не надо: одно сравнение и перестановка если надо :)
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Три точки на прямой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]