1

Тема: Проверка двух отрезков на пересечение

Тут можно ещё на вычислениях сэкономить, если вместо вызовов функции вычисления двойной ориентированной площади проделать вычисления на месте, не вычисляя при этом дважды одинаковые сомножители, в отличие от варианта с вызовами функции.

2

Re: Проверка двух отрезков на пересечение

Можно, но это пожалуй уже хардкор smile

3

Re: Проверка двух отрезков на пересечение

Умножение - самая медленная операция в этом алгоритме.

А теперь представь, что у тебя этот алгоритм выполняется многократно внутри большего алгоритма, где важнее быстродействия ничего быть не может, как это обычно бывает. Экономия, кстати, заметная, можешь подсчитать.

Сорить процессорным временем как-то не принято, это явно не по фэн-шую. smile

А ты говоришь хардкор. smile

4

Re: Проверка двух отрезков на пересечение

Если кому-нибудь придётся, скажем, 100 миллионов раз проверять два отрезка на пересечение, тогда ему действительно придётся оптимизировать и этот момент, и множество других. А во всех остальных, более реальных случаях такой хардкор не понадобится, тем более это ухудшит читаемость кода. Я же всё-таки не высокопроизводительную библиотеку (как LEDA) пишу, а описываю сами алгоритмы/формулы.

5 Отредактировано Svmich (2009-07-07 16:04:09)

Re: Проверка двух отрезков на пересечение

Читаемости кода комментарий поможет, пояснение. Смотри, как здорово получилось с двумя умножениями в алгоритме площади ориентированного треугольника. А скорость алгоритма - абсолютно важное его качество, дающее ему применимость и в простых некритичных задачах, и в весьма критичных по производительности.  А короткий комментарий запросто даст читаемость.

6

Re: Проверка двух отрезков на пересечение

Ну в общем я не стал реализовывать этот изврат, в виде текста только упомянул smile