Две линии на прямой

Автор Тема: Две линии на прямой  (Прочитано 2747 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Две линии на прямой
« : 20-04-2021, 14:18:52 »
Без помидоров и тухлых яиц пожалуйста,
Как используя апи (или без него) определить что две линии лежат на одной прямой

Задача сводится к следующему :
есть список линий
1.) группируем его по линиям которые лежат на одной линии
2.) берем в каждой такой группе только первый элемент, то есть делаем уникальным по линиям на одной оси

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Две линии на прямой
« Ответ #1 : 20-04-2021, 14:23:37 »
1) направления отрезков коллинеарны, векторное произведение равно нулю
2) взять произвольную точку (например, конец) отрезка A, проверить, принадлежит ли она прямой, содержащий отрезок Б

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две линии на прямой
« Ответ #2 : 20-04-2021, 14:25:09 »
1) направления отрезков коллинеарны, векторное произведение равно нулю
если оба условия выполняются , значит линии лежат на одной оси, или что?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Две линии на прямой
« Ответ #3 : 20-04-2021, 14:26:52 »
вектора коллинеарны тогда и только тогда, когда векторное произведение равно нулю

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две линии на прямой
« Ответ #4 : 20-04-2021, 14:34:29 »
2) взять произвольную точку (например, конец) отрезка A, проверить, принадлежит ли она прямой, содержащий отрезок Б



Пример на картинке, можно пример кода?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Две линии на прямой
« Ответ #5 : 20-04-2021, 14:36:14 »
И?

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две линии на прямой
« Ответ #6 : 20-04-2021, 14:38:55 »
Пример на картинке, можно пример кода?
Вот

Отмечено как Решение enot 21-04-2021, 14:01:12

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Две линии на прямой
« Ответ #7 : 20-04-2021, 14:49:27 »
Прямой, содержащей отрезок!

Код писать лень, давай так. Прямая A у неё есть A.Origin и A.Direction. Аналогично прямая B: B.Origin, B.Direction.

Первое условие: A.Direction cross product B.Direction = нулевой вектор
Второе условие: (B.Origin - B.Origin) cross product A.Direction = нулевой вектор

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Две линии на прямой
« Ответ #8 : 20-04-2021, 14:50:08 »
Прямой, содержащей отрезок!

Код писать лень, давай так. Прямая A у неё есть A.Origin и A.Direction. Аналогично прямая B: B.Origin, B.Direction.

Первое условие: A.Direction cross product B.Direction = нулевой вектор
Второе условие: (B.Origin - A.Origin) cross product A.Direction = нулевой вектор

Опечатался чуток, (B.Origin - A.Origin) вместо (B.Origin - B.Origin)

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Две линии на прямой
« Ответ #9 : 20-04-2021, 14:53:37 »
Ага, понял. Будем пробовать)
 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Две линии на прямой
« Ответ #10 : 20-04-2021, 17:55:28 »
Еще один вариант - определить расстояние от точки начала прямой A до прямой B и расстояние от точки начала прямой B до прямой A. Оба значения должны быть равны 0 (с заданной точностью).
P.S.: Важно, чтобы точки начала не совпадали. Если они совпадают, то перенести начало одной из них.
« Последнее редактирование: 20-04-2021, 18:55:56 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение