Pull to refresh
19
0
Alexey Burlakov @Caesar

User

Send message
ага, страницей выше (-:
из вкусностей, пришедших вместе с отслеживением мёржей, стоит отметить, что теперь не нужно помнить на какой ревизии в последний раз в бранч мёржились изменения из транка, т.к. при очередном мёрже клиент возьмёт эти данные из svn:mergeinfo.

Разрешение конфликтов, правда, на мой взгляд, не улучшило ситуацию - особо проще не стало. Лучше бы они как-то доработали систему, чтобы не находила конфликты там, где их быть не должно.

для sparce checkouts пока тоже реального применения не нашел, но это видимо специфика моих репозиториев.
почти так и есть
сорри за опечатки. пишу в темноте на непривычной клавиатуре (-:
не вижу особого смысла делать это нарошно. Ибо невозможность импользвоать paypal скорее оттолкнет разработчика от GAE, чем от paypal.
и это повод ожидать от него такого поведения? Меня вот, например, устраивает ситуация с self в пхп и он ведет себя именно так, как я от него ожидаю. Я программист. Язык создан для меня.

В чем проблема? (-:
это частный случай. с ноутбуками у линукса часто бывают аппаратные проблемы. К счастью эта ситуация постепенно овыравнивается (производители ноутбучного железа начинают писать дрова под линукс). Сони, видимо, пока не сподобилась.
проблема в том, что вы сначала придумываете что там будет такой паттерн, там сякой и пытаетесь _это_ как-то автоматизировать в рамках ПХП. Это паттерны _проектирования_. Не прогарммирования, а проектирования.

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

За очевидным, опять-же, исключением тех случаев, когда язык позволяет это сделать легко и естественно.
т.е. вы исключаете ситуацию работы с несколькими базами данных?

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

надеюсь это скоро закончится.
а где сейчас найти ручной сканер? (-:
вы что-то тоже размахнулись. для этой задачи достаточно любой дешевой цифромыльницы.
ссылки на источники, пожалуйста
хм. действительно, вполне может быть. в википедии, вон, вообще написано про 99.9% эффективность заряда-разряда. надо будет подробнее почитать.
видимо именно потому что по модулю брал и не получается поворот. попробуй сделать startx2 - startx1, как я написал выше - должны работать повороты на все 360...
ещё надо учитывать КПД заряда-разряда аккумулятора, стабилизаторов напряжения и прочей электроники.
ааа! совсем забыл добавить. в случае с тремя точками нельзя допускать чтобы они лежали на одной прямой. Если конкретнее, то разумные коэффииенты и точность вычислений будет при некоей разумной ненулевой площади треугольника с вершинами в точках касания.

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

Не забываем взять результат по модулю.

Думаю при уменьшении площади меньше какой-то величины просто прекращать какие-либо преобразования и ждать пока она не увеличится снова. Если пальцы изначально на одной прямой стоят, то ждать пока площадь не увеличится и толко после этого запоминать стартовые координаты.
надо уезжать, поэтому сразу напишу как посчитать для трёх касаний.

имеем матрицу и три пары векторов в гомогенных координатах:

A =
|a b tx|
|c d ty|
|0 0 1|

start1 = (x1, y1, 1); start2 = (x2, y2, 1); start3 = (x3, y3, 1);
loc1 = (x1', y1', 1); loc2 = (x2', y2', 1); loc3 = (x3', y3', 1);

известно что:
|A||start1| = |loc1|
|A||start2| = |loc2|
|A||start3| = |loc3|

получаются нехитрые уравнения, которые надо решить относительно a, b, c, d, tx и ty (сразу перегруппирую чтобы удобнее было решать):

a x1 + b y1 + tx = x1'
a x2 + b y2 + tx = x2'
a x3 + b y3 + tx = x3'

c x1 + d y1 + ty = y1'
c x2 + d y2 + ty = y2'
c x3 + d y3 + ty = y3'

если из первого и второго вычасть третье, появляется лйгкий путь вычислить a и b:

a (x1 - x3) + b (y1 - y3) = x1' - x3';
a (x2 - x3) + b (y2 - y3) = x2' - x3';

(этот шаг эквивалентен трюку с переносом начала координат в одну из точек касания, который проделан камментом выше).

аналогично делается для второй тройки уравнений для c и d:

c (x1 - x3) + d (y1 - y3) = y1' - y3';
c (x2 - x3) + d (y2 - y3) = y2' - y3';

в общем виде вычисляются коэффициенты. потом подставляются в оставшиеся третье и шестое уравнения и получаются tx и ty.

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

Enjoy!
ну конечно. налажал в относительных координатах. правильно будет так:

dstartx = startx2 - startx1
dstarty = starty2 - starty1

dlocx = locx2 - locx1
dlocy = locy2 - locy1

иначе у нас всё совсем не туда двигаться будет (-:

Information

Rating
Does not participate
Location
Новосибирская обл., Россия
Date of birth
Registered
Activity