Ваша задача - оживить эту иллюзию круга . Это выглядит как точки, вращающиеся внутри круга, но на самом деле они просто движутся по прямым линиям.
Характеристики
- Результат должен быть анимированным. То, как вы делаете анимацию, не имеет значения, она может генерировать
.gif
, она может рисовать в окне, на экране какого-либо устройства или что-то еще. - Это конкурс популярности, поэтому вы можете добавить некоторые дополнительные функции в свою программу, чтобы получить больше голосов, например, изменить количество баллов.
- Побеждает самый upvoted действительный ответ 7 дней после последнего действительного представления.
- Ответы, которые фактически реализуют точки, движущиеся по прямым линиям, а не наоборот, более приветствуются
popularity-contest
graphical-output
animation
рассекать
источник
источник
Ответы:
Python 3.4
Используя модуль черепахи. Черепахи разных цветов, и они всегда смотрят в одном направлении, поэтому можно легко увидеть, что они движутся по прямым линиям, просто сфокусировавшись на одном из них. Несмотря на это, иллюзия круга все еще сильна.
Иллюзия все еще кажется довольно сильной даже с 3 или 4 черепахами:
Частота кадров значительно уменьшается для всех этих примеров GIF, но это, похоже, не умаляет иллюзии. Запуск кода локально дает более плавную анимацию.
Для контраста вот некоторые, которые действительно вращаются:
... или они?
Код можно запустить с 5 необязательными аргументами: заполнение, разрешение, циклы, переворот и строки.
population
это количество черепахresolution
разрешение по времени (количество кадров анимации на повторение)loops
определяет, сколько раз черепахи возвращаются на себя. Значение по умолчанию 1 дает стандартный круг, другие нечетные числа дают это число петель в цепочке черепах, в то время как четные числа дают цепочку черепах, отсоединенных на концах, но все еще с иллюзией изогнутого движения.flip
если ненулевое значение заставляет черепах перевернуть направление для их возвращения (как предложено aslum чтобы они никогда не двигались назад). По умолчанию они сохраняют фиксированное направление, чтобы избежать визуального отвлечения на конечных точках.lines
если ненулевое значение, отображает линии, по которым движутся черепахи, для соответствия с примером изображения в вопросе.Примеры с
flip
множеством, с и безlines
. Я оставил свой основной пример выше без переворота, так как я предпочитаю не делать спорадический прыжок, но край круга выглядит более гладким со всеми выровненными черепахами, так что есть возможность выбора людей, какой стиль они предпочитают при беге код.Может быть не сразу очевидно, как все изображения, представленные выше, были получены из этого же кода. В частности, изображение вверху, которое имеет медленную внешнюю петлю и быструю внутреннюю петлю (ту, которая выглядит как кардиоида, которую кто-то случайно уронил). Я скрыл объяснение этого ниже на тот случай, если кто-то захочет отложить это в процессе экспериментов / размышлений.
Пробуя разные числа, я нашел некоторые из этих искажений более интересными, чем более симметричные оригиналы, поэтому я хотел бы включить их здесь ...
источник
С
Результат:
источник
system("cls"); // xD
SVG (без Javascript)
JSFiddle ссылка здесь
источник
http://jsfiddle.net/z6vhD/13/
intervaltime
изменяет FPS (FPS = 1000 / интервал времени).balls
меняет # шарики.maxstep
регулирует количество шагов в цикле: чем больше, тем «плавнее». 64 должно быть достаточно большим, где это кажется гладким.Смоделирован как движущийся круг, вместо того, чтобы перемещать шарики по линиям, но визуальный эффект (должен быть?) Одинаков. Часть кода довольно многословна, но это не кодовый гольф, так что ...
источник
requestAnimationFrame
вместо этого . Изменено использование JSFiddlerequestAnimationFrame
.CSS анимация
Решение, использующее только анимацию CSS (см. Анимацию в JSFiddle - обратите внимание, что я добавил специфичные для браузера префиксы в скрипте, чтобы он мог работать в самых последних версиях).
источник
-webkit-
для Webkit и-moz-
для Mozilla) Вот та же скрипка с обновленными префиксами: jsfiddle.net/nBCxz/3Mathematica
Вот довольно прямолинейное представление.
Если вы позвоните,
animateCircle[32]
вы получите аккуратную анимацию с 32 линиями и кругами.В Mathematica это абсолютно гладко, но мне пришлось немного ограничить количество кадров для GIF.
Что произойдет, если вы поместите два диска в каждую строку? (То есть добавить
Disk[-Sin[t + phase]*line, 0.05]
в список внутриMap
.)Вы также можете поместить их на 90 ° в противофазе (используйте
Cos
вместо-Sin
):источник
{t, 0, 2 \[Pi]}
чтобы{t, 0, 2 \[Pi] - 2 \[Pi]/60, 2 \[Pi]/60}
не было двух одинаковых кадров и изменитьAnimate
наTable
. Тогда вы сможете экспортировать GIF.Animate
). Я попробую использоватьTable
снова, хотя.VBScript + VBA + круговая диаграмма Excel
Это заставит ваш процессор немного плакать, но выглядит красиво, и я считаю, что он работает в соответствии со спецификацией. Я использовал ответ @ Fabricio в качестве руководства для реализации алгоритма кругового движения.
РЕДАКТИРОВАТЬ: внесены некоторые изменения, чтобы улучшить скорость рендеринга.
Код:
источник
Excel, 161 байт
A2 (период) определяет время (секунды) для полного «оборота».
Каждая ячейка в строках является основным условием, относящимся к значению соответствующей строки. Например, К2 это:
И центральная ячейка (K9):
Вынудили анимацию, удерживая «delete» в случайной ячейке, чтобы постоянно вызывать обновление.
Я знаю, что это старая тема, но недавняя активность вывела ее на вершину, и она почему-то показалась привлекательной. Долгое время слушатель pcg, впервые звонящий. Быть нежным.
источник
Просто для удовольствия с PSTricks.
источник
Фортран
Каждый кадр создается как отдельный gif-файл с использованием gif-модуля Fortran по адресу: http://fortranwiki.org/fortran/show/writegif.
Затем я немного изменяю, используя ImageMagick для объединения отдельных gif-файлов в один анимированный gif.
ОБНОВЛЕНИЕ: Установите новый = .true. чтобы получить следующее:
источник
Обязательная версия C64 .
Скопируйте и вставьте в ваш любимый эмулятор:
источник
Компактная версия JavaScript, изменение настроек по умолчанию на что-то другое
http://jsfiddle.net/yZ3DP/1/
HTML:
JavaScript:
источник
bw=10
). Пожалуйста, измените свой ответ, чтобы показать свой код. Да, и в то время как вы на это, есть ошибка , вы должны исправить: заменитьtime+i*0.39*0.29
сtime+i*Math.PI/num
в расчетах тригонометрических так , что координаты вычисляются правильно для любого значенияnum
. (PS Обновленный JSFiddle здесь . И добро пожаловать на codegolf.stackexchange.com)Мой взять с вязом . Я абсолютный новичок, который с радостью примет PR для улучшения этого решения ( GitHub ):
Обратите внимание, что это представление действительно перемещает точки по прямым линиям:
источник
Second Life LSL
начало альфа-изображения черепахи (щелкните правой кнопкой мыши ниже, чтобы сохранить изображение)
конец альфа-изображения черепахи (щелкните правой кнопкой мыши выше, чтобы сохранить изображение),
создающего объект:
создайте корневой цилиндр первичного цилиндра размером <1, 1, 0,01> срез 0,49, 0,51, цвет < 0, 0, 0>
сделать описание этого цилиндра "8,1,1,1" без кавычек (очень важно)
сделать цилиндр, назовите его "цил", цвет <0,25, 0,25, 0,25> альфа 0,5
дублируйте Если 48 раз
сделать коробку, назовите ее «сфера», цвет <1, 1, 1> прозрачность 100, за исключением верхней прозрачности 0,
поместите текстуру вашей черепахи на лицо 0 коробки, черепаха должна стоять на лице + x
продублировать коробку 48 раз
выберите все коробки и цилиндры, убедитесь, что последний цилиндр выбран последним,ссылка (контроль L)
поместите эти 2 сценария в корень:
источник