Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Три точки на прямой / 25 сообщений из 41, страница 1 из 2
28.06.2017, 07:46
    #39478772
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
Подскажите пожалуйста, как определить, лежат ли три точки на прямой ?
...
Рейтинг: 0 / 0
28.06.2017, 08:01
    #39478774
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
Приложи линейку к монитору =). (реально самый простой способ)

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

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

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

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

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

А формула есть? )) http://lmgtfy.com/?iie=1&q=векторное произведение
Спасибо ))))
Ну я вот что-то не нашёл (((
...
Рейтинг: 0 / 0
28.06.2017, 10:57
    #39478874
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
RMagistr2015Barloneпропущено...
http://lmgtfy.com/?iie=1&q=векторное произведение
Спасибо ))))
Ну я вот что-то не нашёл (((
это же в школе вроде изучают?
...
Рейтинг: 0 / 0
28.06.2017, 12:06
    #39478944
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
RMagistr2015Ну я вот что-то не нашёл Не верю! (с)
...
Рейтинг: 0 / 0
28.06.2017, 13:22
    #39478994
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
Расстояние между парой точек должно быть равно сумме расстояний между прочими
...
Рейтинг: 0 / 0
28.06.2017, 14:54
    #39479099
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
Шавлюк ЕвгенийРасстояние между парой точек должно быть равно сумме расстояний между прочими
запиши это на GLSL
...
Рейтинг: 0 / 0
28.06.2017, 14:58
    #39479105
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
если (y1=y2=y3) или (x1-x2)/(y1-y2)=(x2-x3)/(y2-y3) то они лежат на 1 прямой.
...
Рейтинг: 0 / 0
28.06.2017, 15:09
    #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
28.06.2017, 15:20
    #39479131
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
Roman Mejtesесли (y1=y2=y3) или (x1-x2)/(y1-y2)=(x2-x3)/(y2-y3) то они лежат на 1 прямой.
ещё проверь, что в знаменателе не 0.


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


Ещё раз всем фантазёрам - запишите тест на GLSL(или в командах SSE)
...
Рейтинг: 0 / 0
28.06.2017, 15:40
    #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
28.06.2017, 15:55
    #39479171
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Три точки на прямой
Dima T,

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

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


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