Pull to refresh

Comments 62

Симпатично в динамике смотрится :)
Спасибо!
Подсказка: если потыцять по графику, то можно увидеть ещё больше симпатичностей (их набор сейчас несколько ограничен, но я обещаю в дальнейшем пополнять запасы) :)
> их набор сейчас несколько ограничен, но я обещаю в дальнейшем пополнять запасы

Когда-то давно тоже подобные «графики» «рисовал» (без вращения), чтобы они были поинтересней, просто немного удлинял форумулу + добавлял рандом… что-то типа
X[i] = Xo + R*cos(α) + R/2 * sin(α/2) + R/4 * cos( α * rand);
Получалась некоторая мешанина синусов и косинусов, но фигуры получались каждый раз разные (насколько это возможно с рандомом) и всегда замкнутые (что логично :) ) и симметричные. Попробуйте нечто подобное и запас должен будет разом пополниться на почти неограниченное множество вариантов.
Со времени «изобретения» этой вертелки я аналогичным образом «удлинял» формулы, в том числе добавляя и тангенс-функции, что привносило разрывы в графики. А вот за наводку с рандомом — спасибо, я о таком не додумался. Хотя, считаю, что с рандомом нужно быть аккуратным, потому что он вносит непредсказуемость и далеко не каждый график будет выглядеть превосходно.
Ну как вариант с рандомом можно на_строить кучу матриц и потом оставить только те, которые выглядят превосходно ;)
Очень симпатично =)

Вы знайте, есть такое видео для тестирования зрительного восприятия, там на светлом фоне крутится тёмный силуэт девушки и в зависимости от того в какую сторону он вращается определяют какое полушарие мозга в данный момент активно.
n0b0dy, ваше творение повторяет этот опыт, фигуры можно заставить вращаться и по часовой стрелке и против =) Подробнее, вот по этой ссылке (извините, что именно там, не искал на других видео-обменниках): vkontakte.ru/video3175343_158385868?noiphone

С Наступающим! =)
Да, я конечно же в курсе подобных штук и мне они очень нравятся! Девушку я могу тоже вращать усилием воли как захочу. :D
Прикольно.
У меня по умолчанию по часовой крутится, обратно легко «переключаю», а ещё раз обратно (снова по часовой) тяжелее.
Я уверен, что у большинства из нас она закрутится по часовой =)
А у самых озабоченных еще и встанет «по рыболовецки»…
UFO just landed and posted this here
Спасибо на добром слове. Хоть и лесть, а всё ж приятно :)
Незабываемых праздников!
UFO just landed and posted this here
оригинально! не сразу понял, почему вообще должно работать :)
Прикольно! Попытаюсь реализовать такую штуку под андроид…
Мне будет чертовски интересно увидеть реализацию. Поделитесь, когда напишете?
Обязательно! Но сначала нужно Новый год отпраздновать, а потом и извилинами, для разминки пошевелить!
P.S. Всех с Наступающим!
Я один подобным занимался в школе на бейсике?
Не знаю кому как, но подобный метод по-моему первое что делает человек научившийся рисовать программой на компе.
Как раз-таки не один.
Это было сделано мною году эдак в 96м, но поделиться я созрел именно сейчас.
я видывал/писал много подобных вещей, но вот такой простой и эффектной динамики — не встречал
Есть целый курс программируемой графики — рисуем фракталы, виньетки и пр.
Я например даю детям в Паскале.
Честно не ожидал, что на Хабре этим заинтересуются.
То ли потому, что у нас бейсик как-то совсем по минимуму давался (линия русуется так, кружочек так, а теперь, дети, рисуйте домик и солнце), то ли что, но меня хватило только на круги рандомного размера и цвета, которые двигались в рандомных направлениях с рандомной скоростью. До сабжа как до луны, но залипать можно было долго.
А не проще/быстрее было бы просто менять текуший индекс Х с которого начинать отрисовывать?
Естественно, об этом и написано в первом постскриптуме. Просто я на данном этапе решил не усложнять понимание процесса :)
А в чем суперенность-то? Ноу-Хау?
Вообще тематика аттракторов, фракталов и рекуррентной нелинейной динамики намного зрелещнее.
Вот к примеру про хаотические («странные») аттракторы.
Всего-то нужен квадрат рекуррентной функции комплексной переменной:
Z[n+1] = Z[n]^2,
а в результате хаотические облака. А эта графика времен «Elite» на мой взгляд сейчас из себя ничего интересного не представляет. Уж лучше пойду на WinAmp Visualization полюбуюсь :)
Суперенность заключается в сверхпростоте.
Ну а зрелищность, в общем-то, для каждого своя, ибо как известно, на вкус и цвет фломастеры разные :)
Покажите мне что-нибудь сопоставимое по простоте и динамичности.
Вот вам зрелищность и потенциальный мультиоргазм ментальности:
Polynomial
Это квадрат ФКП.
— Что это, товарищ майор?
— Это аттрактор, товарищ полковник!
— Какой-то он у Вас странный…

Люди, будьте люди, чел утром 31-го декабря(!) запостил, а вы его как будто на зачете! :)

Всех с наступающим :)
Люди, будьте люди, чел утром 31-го декабря(!) запостил, а вы его как будто на зачете! :)

И даже более того: это мой самый первый топик вообще. Он прошёл через песочницу и я за него получил инвайт! :D
Вот такой у меня некислый новогодний подарок образовался!

С наступающим всех!
Было бы отлично, если бы это было доступно, как скринсейвер)
Есть простейшая реализация на опенГЛе в виде виндового экзешника. Могу отдать сырцы на растерзание, если хотите.
UFO just landed and posted this here
Только долгие годы упорных тренировок приведут к истинному управлению вращением.
Лично я познал суть вещей и могу вращать это дело, как захочу! :)
Тренируйтесь с помощью флешки отсюда:

illusioncontest.neuralcorrelate.com/2010/two-sinusoids-6-–-1-perceptions/
UFO just landed and posted this here
я чуть не ослеп, пока не научился крутить

с той, что в гифке, или с реальными :)
UFO just landed and posted this here
Интересный заголовок — «Оргазм для мозга» — твоё детище тр*хнул мозги.
А так в Oper-е и Firefox-е тормозить. Лучше использовать Chrome.
четвёртый лис бета 8 хорошо справляется
На каком-то этапе похоже на аттрактор Лоренца xD
Молодец. Когда-то сам с таких картинок начинал изучение программирования. Ингода тоже балуюсь, вот, например: kalantyr.livejournal.com/925.html
Картинки шикарные. Вот бы их покрутить ещё! Хотя некоторые, кажется, создают иллюзию движения, будучи статическими. Пять баллов!
Ляпота! Оказывается все не так уж сложно!
Да уж, как все просто оказалось. Прикольно.

А меня в свою очередь добил алгоритм интры класса 128b X.com где рисовался такой большой Х поперек экрана, а потом начинал переливаться как вода.

Когда я дизассемблировал эту интру и покомандно отладил в тетрадочке (128 байт, чего уж там) я был просто в шоке. Оказывается весь этот афигенно красивый эффект делается простым как мычание клеточным автоматом. Что то вроде берем цвет клетки, уменьшаем его на 1, а соседние клетки закрашиваем цветом текущей клетки, и так рандомно по всему экрану. Таким же образом очень легко делается очень реалистичное пламя (а увеличив количество итераций можно устроить нереальный взрыв).

Так вот. Чтобы вместо пламени получились такие переливы воды автор заливал в вга контроллер хитрую палитру цветов, где было 256 градаций красного и яркость менялась пилообразно. Только за счет хитрой палитры рисовался и Х и переливы в нем. Нет, я все понимаю, демомейкеры факингсумасшедшиегениинах, но КАКОЙ надо иметь мозг чтобы додуматься до такого эффекта?

Кому интересно могу порыться и выложить сорцы этой дивной демки.
Помню-помню, как я в своё время с ВГАшной палитрой баловался. Это было просто и в то же время эффективно. Была даже, прости господи, демка одна собственноручно нарисованная и приуроченная к 1998му новому году. Сейчас на неё без слёз не взглянешь (и даже не запустишь, разве только под досбоксом), но тогда это было мега-круто!
Автору спасибо, оч. занятно, да так занятно, что реализовал такую штучку на андройде в виде живых обоев (live wallpapers):

apk — narod.ru/disk/2514873001/DancingPoints.apk.html
sources — narod.ru/disk/2514857001/dancingPoints.zip.html
screenshot — s51.radikal.ru/i134/1012/25/2bade0b6422f.png

Всех с наступающим!)
Где-нибудь 3-4 числа выложу на github.
Там на самом деле довольно просто все сделано, если ставить как насамомделешние обои, то аппарат (nexus one) притормаживает. Интересно, как это хозяйство можно оптимизировать
Спасибо, что прониклись :)

Интересно, как это хозяйство можно оптимизировать

Очень просто: нужно всего лишь выкинуть функцию shiftXCoords() и скорее всего внести некоторые концептуальные изменения :)
Я так понимаю, сейчас у вас график представлен сугубо по канонам ООП: есть класс Point, а сам график представлен набором колец, каждое из которых представлено наборм этих самых Point'ов. Возможно, такая идеология и является единственно верной, но лично я для себя никак не могу понять всю прелесть такого подхода и из-за этого никак не могу подружиться с джавой. Но это я немного отошёл от темы.

Я расскажу на пальцах, а вы уже сами натянете это на идеологию ООП.
Вот что нам потребуется:
(_R — количество колец, _P — количество точек в кольце)
— два двумерных массива с координатами: X[_R][_P] и Y[_R][_P]
— глобальный текущий индекс координаты x в массиве curCoordPos (изначально curCoordPos = _P-1)
— микрофункция decCoordPos(), которая будет делать две вещи: 1) декрементить curCoordPos; 2) если curCoordPos<0, то переинитить curCoordPos в _P-1

Ну а дальше всё просто: отрисовка делается по такому принципу:
for (i=0; i<_R; i++)
{
    for (j=0; j<_P; j++)
    {
        drawPoint(X[i][curCoordPos], Y[i][j]);
        decCoordPos();
    }
}

//и в конце, после отрисовки всей колбасы сделать
decCoordPos();


Таким образом мы избавимся от ненужных перемещений данных.

Кроме этого предлагаю сделать координаты X и Y не флоатами, а интами (и при их расчётах просто округлять до целого). Рисование-то ведётся всё равно вроде как в целочисленных координатах (поправьте, если ошибаюсь).

Если есть ещё вопросы — обращайтесь!
Спасибо, попробую) Насчет координат, надо посмотреть на самом деле, скорей всего int-ы используются, но есть слабая непроверенная надежда на субпиксельное позиционирование и соответствующее сглаживание)
По-моему такое счастье наблюдается разве что во флэше, да на опенГЛе (это из того, что я знаю).
технологии мля :) на спектруме с его 3.5 мегагерцами оно быстрее крутилось :)
А всё потому, что ресурсы на спектруме были, мягко говоря, ограниченными и приходилось думать, чтобы сделать что-то стоящее. Не то, что сейчас. :(
а если сделать поверхности полупрозрачные?
На Хабре уже дошли уже до цветочков в полярных координатах из древних учебников по бейсику, подумал я сначала…

Поотом посмотрел как оно работает и прямо обрадовался :) Сколько я мучил qbasic чем-то типа картинок из этого коммента, но сдвинуть координаты относительно друг друга не догадался.

Супер, спасибо за статью :)
UFO just landed and posted this here
Sign up to leave a comment.

Articles