Category: религия

Category was added automatically. Read all entries about "религия".

nyaload

Попадание точки в многоугольник. Количество заныриваний не равно количеству выныриваний.

Есть точка O, есть многоугольник A[n] на плоскости. Надо выяснить, попадает ли точка в многоугольник.

Основа алгоритма описывается очень просто: давайте возмём бесконечный горизонтальный луч из точки направо. Если луч пересекает границу четное число раз (в том числе 0 раз) , то точка вне многоугольника. Если нечетное число раз - то внутри.



Затем программист пытается обработать хитрые случаи: луч проходит через вершину многоугольника, сторона многоугольника совпадает с лучом. В коде возникают какие-то if, какие-то EPSILON..., молитвы о том, что редкие случаи когда две точки на расстоянии EPSILON но луч между ними - не существуют, насильно изгонясь из сознания Collapse )

Смотри ещё: • Угол между двумя векторами
Смотри ещё: • Пересечение двух отрезков
nyaload

В угожденье богу злата край на край встает войной

Большая статья, в которой интересно и без истерики раскрывается десяток небольших теорий заговора, и одна большая.

http://www.zlev.ru/142/142_33.htm

Лучшая позиция в будущей мировой войне – стать островком стабильности, страной вооруженного до зубов нейтралитета



На земле весь род людской
Чтит один кумир священный -
Тот царит над всей вселенной,
Тот кумир – телец златой.
В угожденьи богу злата
Край на край встаёт войной,
И людская кровь рекой
По клинку течёт булата.
Люди гибнут за металл!
Люди гибнут за металл!..
nyaload

float как параметр шаблона.

Метафункция сложения:


template <class A, class B>
struct Sum
{
  static float f() { return A::f() + B::f(); }
}
_Winnie C++ Colorizer


Константа:
struct Pi { static float f() { return 3.14; } };
_Winnie C++ Colorizer



строго говоря, не compile-time, но, как всегда, молимся на оптимизатор.

Правда, для широкого применения не очень удобно. Нахрен надо, не очень знаю :P
Гораздо чаще хочется со строками в compile-time работать... А их компилятор уже не соптимизирует, как
inline float f()
.

updated: интересно, STATIC_ASSERT можно тут сделать?