Ответ на сообщение Re: Программист. пользователя tolstopuz
Cпасибо за код.
Мне понравился код tolstopuz'а. По духу, так сказать, ближе. Ничего лишнего (только запутал с переменными, всё же x/y - это координаты, и в исключении желательно кидать "плохие" параметры). Если писать нужно за деньги, то можно разводить бадью с ручными проверками пред и пост условий. Кстати, а как Вы, Well, проверяете вручную инварианты? В программировании по контракту ведь и это есть.
Вопрос всем: скажите, парни, почему вы используете арифметику с плавающей точкой для картинок, где она по сути не нужна? Я не силён в PHP. Но попробовал избавиться в коде tolstopuz'а от double. На моём стареньком ноутбуке выигрыш по производительности на этой маленькой функе составила 25-30% (PHP 5.3.3-1ubuntu9.7 with Suhosin-Patch (cli) (built: Dec 13 2011 17:53:04)). Погрешность ведь получается 1 пиксел. Зачем все эти round?
Вот код:
http://pastebin.com/2a9WGjz7
Мне понравился код tolstopuz'а. По духу, так сказать, ближе. Ничего лишнего (только запутал с переменными, всё же x/y - это координаты, и в исключении желательно кидать "плохие" параметры). Если писать нужно за деньги, то можно разводить бадью с ручными проверками пред и пост условий. Кстати, а как Вы, Well, проверяете вручную инварианты? В программировании по контракту ведь и это есть.
Вопрос всем: скажите, парни, почему вы используете арифметику с плавающей точкой для картинок, где она по сути не нужна? Я не силён в PHP. Но попробовал избавиться в коде tolstopuz'а от double. На моём стареньком ноутбуке выигрыш по производительности на этой маленькой функе составила 25-30% (PHP 5.3.3-1ubuntu9.7 with Suhosin-Patch (cli) (built: Dec 13 2011 17:53:04)). Погрешность ведь получается 1 пиксел. Зачем все эти round?
Вот код:
http://pastebin.com/2a9WGjz7
42