Рассматривая все новые программы, в том числе сложные и специализированные, все без исключения люди пускают слюни от стартовой страницы и интерфейса в общем. Эта мысль у меня появилась еще в глубоком детстве. Всем нравились игры с хорошей графикой, а на геймплей всем было пофиг. Собственно сейчас так и происходит. Начиная от самой популярной игры на планшетах Bad Piggies, заканчивая супер 3D шутерами.
(Ну не всем, а половине. Остальной половине нравится годами кликать по монстрам в MMORPG. Геймплеем это то же назвать сложно.)
Так и в бизнес приложениях. Я сам видел, как взрослые дяди: бухгалтера, финансисты, директора выбрали программу, в которой было больше всего эффектов, переливающихся графиков. Когда при щелчке по ячейке отчета не просто появляется новый отчет, а с дымом и искрами разворачивается эта ячейка.
Короче, нам и мне заняться всякими украшательствами. В первую очередь я заметил переливающиеся кнопки на панели задач Windows... 8 минут и у меня то же есть подобный эффект
В не оптимизированном, но более понятном варианте это выглядит так:
(Ну не всем, а половине. Остальной половине нравится годами кликать по монстрам в MMORPG. Геймплеем это то же назвать сложно.)
Так и в бизнес приложениях. Я сам видел, как взрослые дяди: бухгалтера, финансисты, директора выбрали программу, в которой было больше всего эффектов, переливающихся графиков. Когда при щелчке по ячейке отчета не просто появляется новый отчет, а с дымом и искрами разворачивается эта ячейка.
Короче, нам и мне заняться всякими украшательствами. В первую очередь я заметил переливающиеся кнопки на панели задач Windows... 8 минут и у меня то же есть подобный эффект
В не оптимизированном, но более понятном варианте это выглядит так:
int mx,my; getCursorPos(mx,my); screenToClient(mx,my); unsigned char* a = (unsigned char*)dc.backBmp.ptr32; if(a==0) return; double cy = dc.backBmp.height; double cx = dc.backBmp.width; for(int y=dc.backBmp.height-1; y>=0; y--) for(int x=0; x<dc.backBmp.width; x++) { int xx = abs(cx-x-mx)*cy/cx + abs(cy-y-my); xx = 16-xx; if(xx<0) xx=0; for(int n=0; n<3; n++) { int v = int(*a) + xx; if(v > 255) v = 255; *a++ = v; } a++; }