Вверх ↑
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
#1: 2010-02-20 00:02:48 ЛС | профиль | цитата
Подскажите, как с минимальной потерей крови вычислить пересекаются или нет линии. code_16997.txt
карма: 1

0
файлы: 1code_16997.txt [571B] [234]
Ответов: 5446
Рейтинг: 323
#2: 2010-02-20 00:40:15 ЛС | профиль | цитата
Использовать курс алгебры (9 или 10 класс, уравнение прямой на плоскости + решение системы двух линейных уравнений): если угловые коэффициенты не равны, то пересекаются в одной точке. Если равны, но свободные члены не равны - параллельны. Если все коэффициенты равны - то пересекаются в бесконечном множестве точек (совпадают).
карма: 1

0
Ответов: 875
Рейтинг: 322
#3: 2010-02-20 00:49:34 ЛС | профиль | цитата
iarspider, не хотелось использовать кучу X-Xn, Y-Yn. По всей видимости должна существовать какая-то формула привязанная именно к экрану или такой не существует?
карма: 1

0
Ответов: 5446
Рейтинг: 323
#4: 2010-02-20 11:42:46 ЛС | профиль | цитата
kamakama, уточни условие задачи: как заданы прямые, и прямые ли это (лучи, отрезки)?
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#5: 2010-02-20 13:03:11 ЛС | профиль | цитата
Насколько я понял - имеют ли две линии общую точку в пределах экрана.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8939
Рейтинг: 824
#6: 2010-02-20 14:17:15 ЛС | профиль | цитата
kamakama, если Вы имели ввиду не линии, а отрезки, то задача упрощается (можно избавиться от проверок деления на 0): code_17007.txt
карма: 19

2
файлы: 1code_17007.txt [3.9KB] [323]
Голосовали:Administrator, Tad
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2010-02-20 14:44:30 ЛС | профиль | цитата
видимо стоит сделать отдельный элемент для проверки пересечения двух отрезков
карма: 27
0
Ответов: 2060
Рейтинг: 28
#8: 2010-02-20 15:00:00 ЛС | профиль | цитата
Dilma писал(а):
видимо стоит сделать отдельный элемент для проверки пересечения двух отрезков

Да стоит.
карма: 1

0
Ответов: 875
Рейтинг: 322
#9: 2010-02-20 15:19:51 ЛС | профиль | цитата
Леонид, спасибо. Оказывается это не так просто. Вот это хотел повторить, теперь что-то задумался... Задача - передвинь точки так, чтобы линии не пересекались.
карма: 1

0
файлы: 1putanka.rar [6.9KB] [180]
Ответов: 2060
Рейтинг: 28
#10: 2010-02-20 16:35:43 ЛС | профиль | цитата
Как можно сделать колизию двух объектов с минимальной загрузкой процессора?



Мне в голову приходит только то, что можно фигуры разбить на маленькие квадраты и после проверять колизии маленьких квадратов. Будет не большая погрешность, но ей можно будет пренебречь.

карма: 1

0
файлы: 1Колизия.png [6.4KB] [643]
Ответов: 8939
Рейтинг: 824
#11: 2010-02-20 17:51:16 ЛС | профиль | цитата
Эдик, коллизия - столкновение по-русски? Малой кровью не обойдёшься особенно на рисунках, а не на формулах.
Разбивать фигуру математически лучше на треугольники.
карма: 19

0
Ответов: 2060
Рейтинг: 28
#12: 2010-02-20 18:00:28 ЛС | профиль | цитата
Леонид писал(а):
Эдик, коллизия - столкновение по-русски?

Да.
------------ Дoбавленo в 23.57:
Dilma, добавь ещё два компонента.
1. Пересечение: Отрезок и треугольник. http://algolist.manual.ru/maths/geom/intersect/linefacet3d.php
2. Пересечение: Два треугольника. http://algolist.manual.ru/maths/geom/intersect/tritri3d.php
------------ Дoбавленo в 02.54:
3. Пересечение: любого прямоугольника на плоскости. ORect - ORect. Определение столкновений между простейшими геометрическими объектами. http://doj-dp.narod.ru/CDArticle/CDArticle.html
карма: 1

0
Ответов: 8939
Рейтинг: 824
#13: 2010-02-22 22:36:42 ЛС | профиль | цитата
Dilma, в приложении элемент CrossLine и пример.
kamakama, "путанку" можно сделать
Эдик, линии на схеме исправил
карма: 19

6
файлы: 1crossline.rar [3.1KB] [199]
Голосовали:Administrator, Genius, filyaxxxcom, kamakama, MAV, Konst
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2010-02-22 23:28:04 ЛС | профиль | цитата
добавлено
карма: 27
0
Гость
Ответов: 17029
Рейтинг: 0
#15: 2010-02-22 23:37:08 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 08:04:45
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)