Обновить
@EndUserread⁠-⁠only

Пользователь

4
Подписчики
Отправить сообщение
Раньше можно было пользоваться любым дополнением целый год, даже не обновляясь.

Сейчас без изменения организации совместимости приходится ждать месяца два когда дополнения добьются до новой версии FX (при полном времени жизни версии в 6 месяцев).

То есть 20-30% времени эта новомодная тенденция держит дополнения вырубленными.
Спасибо!
А вы не могли бы сделать сводную таблицу прав?
GNU, Creative Commons, Public Domain, FreeWare, ShareWare и т.д?
И пометить «Да/Нет» по списку прав:
1)Использовать конечный продукт бесплатно на протяжении любого времени
2)Читать исходники
3)Использовать идеи, методики, техники из исходников в своих проектах
4)Использовать идеи, методики, техники конечного продукта в своих проектах
5)Изменять исходники
6)Обязательно открывать изменённые исходники
7)Иметь право продавать изменённый проект
8)Бесплатно использовать бинарники в своих проектах
9)Обязательно указывать чьи бинарники использованы
10)Обязательно отчислять автору использованных бинарников в случае продаж своего проекта
и так далее.

А то лицензий очень много и простому программисту может быть тяжко выбрать тип для своего продукта или правильно понимать насколько можно использовать чужой
Это юзеру может номано, а программисту неуважение — как если бы молоток или пасатижи заявили бы «а… опять клиент…
ну здравствуй, обслужим, так и быть»
Oem — это не аренда, это моё владение.
Кому бы я простил «добро пожаловать» при входе на свою территорию?!
«Княжество Монако объявило войну независимому государству Техас!
Вспомнили, что век с небольшим назад Техас занял 20 000 000 франков — и подло скрылся в теле США.
Князь Рене объявил войну Техасу, произвел мобилизацию резервистов ( в том числе был мобилизован гражданин Монако — Аристотель Онассис, еще не женатый на Жаклин...), собранных в спортлагере на территории Франции (ну, места в Монако не было!) и пригрозил репрессалиями в форме недопуска к рулетке граждан США. После чего супостат капитулировал, заплатив $5000000, а в Монако был парад резервистов и единственного регулярного формирования Монако — самого большого в мире военного оркестра -200 музыкантов.
(Слухи о том, что бронированный Роллс-Ройс Онассиса представлял бронесилы княжества недостоверны)»
>«Например поле типа int с именем «x». Нас вполне устроит такая запись: field(int,x);»
«отучаемся говорить за всех»©FIDO
меня устроит запись get_x() и set_x(v)
Мнэ… Сейчас почти вся капча аутсорсится на гастарбайтеров, суть хомо сапиенсов.
Поэтому вопрос не в том, чтобы отсечь роботов, а в том, чтобы отсечь нерелевантных посетителей.
Покуда я понял, что таким контролем может быть только контекстный вопрос — тот, на который не ответит гастарбайтер, и ответит вероятный клиент.
Как формулировать вопрос — штука сложная, особенно в общественных местах где трудно объединить людей одним контекстом. Например разноплановый форум.
Опять же есть слабо ориентированные ресурсы, скажем магазины, где любой гастарбайтер легко пройдёт капчу. (Правда у магазина есть другие механизмы — хоть бы и 1 доллар на депозите).
Товарищ Boomburum!

Разъясните, пожалуйста, политику партии классификацию HTC:
* Названия какого рода являются флагманами?
* Что и по каким названиям является ответвлением от флагманов, и в какие практические стороны?
* Что значат HD, HD2, Pro, Pro2, S в смысле ответвлений?

Иначе скоро у меня крыша съедет: каждый анонс каждой модели HTC — сенсационный, не меньше.
Нет, нельзя: гуччи, цеппелин и т.д.

С брендами грабли в том, что половина от неанглийских названий, фамилий…

Надо отдельное исследование, наверное
«После устранения некоторых подводных камней OO.org был тихо установлен»
Гражданин автор, а что за подводные камни-то?
Это «многоугольник с дырками». в случае с
(o)
считается, что
o
содержит внешнее пространство, а пространство между
((
считается внутреннием.

И к чему относится содержимое самой маленькой о вложенности этой маленькой о, если чётность-нечётность вы не знаете?
Ориентированная площадь из любой точки плоскости даст ±S многоугольника (в зависимости от направления обхода рёбер).

Более того, как считать площадь многоугольника, кроме как способом модуля от ориентинованной площади? :-D

Ориентированная площадь для меня наиболее простой и очевидный способ при наличии координат вершин многоугольника.
Так-с… Я прикинул три фрагмента (на псевдокоде)

Фрагмент 1, через арксинус векторного произведения:

//=============================================================
//sin(a, b) = len(vector_prod(a, b)) / (len(a) * len(b))
float P0x, P0y; // origin of the angle
float P1x, P1y; // start of an angle segment
float P2x, P2y; // finish of an angle segment

float Ax = P1x — P0x, Ay = P1y — P0y; // convert segment (P0,P1) to (0,A)
float Bx = P2x — P0x, By = P2y — P0y; // convert segment (P0,P2) to (0,B)

if ( Ax == 0.0 && Ay == 0.0 ) // len_a == 0.0
throw Exception__Point_is_on_Vertex;

if ( Bx == 0.0 && By == 0.0 ) // len_b == 0.0
throw Exception__Point_is_on_Vertex;

float len_a = sqrt(Ax * Ax + Ay * Ay); // length of vector a
float len_b = sqrt(Bx * Bx + By * By); // length of vector b

float vector_prod_x = Ay * 0.0 — 0.0 * By; // Bz and Az are zero
float vector_prod_y = 0.0 * Bx — Ax * 0.0; // Az and Bz are zero
float vector_prod_z = Ax * By — Ay * Bx;
float vector_prod_len = vector_prod_z; // singular case, no sqrt() needed

{//bug here!!!
if ( vector_prod_len == 0.0 )
throw Exception__Point_is_on_Segment;
float sin_gamma = vector_prod_len / (len_a * len_b);
};//bugged block finished

float gamma = asin(sin_gamma);

return gamma;
// total:
// arcsine: 1
// square root: 2
// multiplication: 11
// division: 1
// addition: 2
// substraction: 7
// test condition: 2
// conjunction: 2
// equality: 4

Фрагмент 2, через арккосинус скалярного произведения:

//cos(a, b) = scalar_prod(a, b) / (len(a) * len(b))
float P0x, P0y; // origin of the angle
float P1x, P1y; // start of an angle segment
float P2x, P2y; // finish of an angle segment

float Ax = P1x — P0x, Ay = P1y — P0y; // convert segment (P0,P1) to (0,A)
float Bx = P2x — P0x, By = P2y — P0y; // convert segment (P0,P2) to (0,B)

if ( Ax == 0.0 && Ay == 0.0 ) // len_a == 0.0
throw Exception__Point_is_on_Vertex;

if ( Bx == 0.0 && By == 0.0 ) // len_b == 0.0
throw Exception__Point_is_on_Vertex;

float len_a = sqrt(Ax * Ax + Ay * Ay); // length of vector a
float len_b = sqrt(Bx * Bx + By * By); // length of vector b

float scalar_prod = Ax * Bx + Ay * By;

float cos_gamma = cos_gamma = scalar_prod / (len_a * len_b);

float gamma = acos(cos_gamma);

return gamma;
// total:
// arccosine: 1
// square root: 2
// multiplication: 7
// division: 1
// addition: 3
// substraction: 4
// test condition: 2
// conjunction: 2
// equality: 4

Фрагмент 3, через площадь треугольника детерминантом и площадь синусом:

//=============================================================
// surface of a triangulum is equal to a half
// of the coordinated matrix determinant:
// |Ox, Oy, 1|
// S = (1/2) * |Ax, Ay, 1|
// |Bx, By, 1|
// S = (1/2) * (Ox * (Ay — By) + Ax * (By — Oy) + Bx * (Oy — Ay) =
// (considering Ox, Oy are zero)
// = Ax * By – Bx * Ay
//
// also
// surface of triangulum is
// S = (1/2) * |OA| * |OB| * sin_gamma
//
// therefore
// sin_gamma = 2 * S / (|OA| * |OB|) = determinant / (|OA| * |OB|)

float x0, y0; // point to test, point_0
float x1, y1; // segment start, point_1
float x2, y2; // segment finish, point_2

float Ax = P1x — P0x, Ay = P1y — P0y; // convert segment (P0,P1) to (0,A)
float Bx = P2x — P0x, By = P2y — P0y; // convert segment (P0,P2) to (0,B)

if ( Ax == 0.0 && Ay == 0.0 ) // len_a == 0.0
throw Exception__Point_is_on_Vertex;

if ( Bx == 0.0 && By == 0.0 ) // len_b == 0.0
throw Exception__Point_is_on_Vertex;

float len_a = sqrt(Ax * Ax + Ay * Ay); // length of vector a
float len_b = sqrt(Bx * Bx + By * By); // length of vector b

float determinant = Ax * By — Bx * Ay;

float sin_gamma;
// if the triangle is degenerate, determinant is zero, angle is zero,
// and point is on the segment

{//bug here!!!
if ( determinant == 0.0 )
throw Exception__Point_is_on_Segment;
float sin_gamma = determinant / (len_a * len_b);
};//bugged block finished

float gamma = asin(sin_gamma);

return gamma;
// total:
// arcsine: 1
// square root: 2
// multiplication: 6
// division: 1
// addition: 2
// substraction: 5
// test condition: 3
// conjunction: 2
// equality: 5

Первый фрагмент глюкавый (помечено).
Второй фрагмент на одно умножение сложнее третьего и
Третий фрагмент получается самым оптимальным, но опять глюк на синусе…

Ну, так и получается, что через арккосинус скалярного проще и вернее.
Кстати, если точка внутри фигуры, то я насчитал два случая +2π и -2π.
И если точка на ребре, то тоже вижу два случая π и 3π.

А так вообще везде надо перепроверить операцию «== 0.0» на корректность. Мало ли…
он работает для любых многоугольников, как выпуклых, так и невыпуклых.

исключения, я назвал, незамкнутые ломаные и точка на ребре (приходится доверять значению п+-epsilon).

угол вспомню чуть позже — с компа вместо мобилки.
но, вероятно вы правы: скорее через арккосинус скалярного.
тогда вычисления самозащищены от деления на ноль.
Да, надо сделать бесконечный луч в любую сторону из точки. Если количество пересечений нечётное, то точка внутри.
Если луч совпал с отрезком фигуры, тогда алгоритму задница.
Я делал так: считал сумму углов из точки до концов отрезка, и так для каждого отрезка ломаной. Сам, блин, кустарно изобретал.

Результат был простой:
• если сумма равна ±2π, то точка внутри.
• если сумма равна 0, то точка снаружи.
• побочно: если сумма равна +-π, то точка на границе (с оговорками на точность арифметики).

Дырка была в том случае, если концы незамкнутой ломаной лежат на луче, исходящем из точки.
Но по условиям на входе был таки замкнутый многоугольник. ;-)

Позже проконсультировался с математиком, он предложил в общем случае интеграл по контуру (забыл какой функции), а в частном случае с ломаной таки сумму видимым углов обозрения, так как «изобрёл» я.
В чём смысл первой иллюстрации материала?!

anwap.org/servis/story/story1305-1335.html
НЛО прилетело и опубликовало эту надпись здесь

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность