Seu trabalho é animar essa ilusão de círculo . Parece que os pontos estão girando dentro do círculo, mas na verdade eles estão apenas se movendo em linhas retas.
Critérios
- O resultado deve ser animado. O modo como você faz a animação é irrelevante, pode gerar um
.gif
, pode atrair uma janela, alguma tela do dispositivo ou o que for. - Este é um concurso de popularidade, portanto, você pode querer adicionar alguns recursos adicionais ao seu programa para obter mais votos positivos, por exemplo, variando o número de pontos.
- O vencedor é a resposta válida mais votada 7 dias após o último envio válido.
- As respostas que realmente implementam pontos que se movem em linhas retas e não o contrário são mais bem-vindas
Respostas:
Python 3.4
Usando o módulo tartaruga. As tartarugas são de cores diferentes e sempre voltadas para a mesma direção, de modo que podem ser facilmente vistas movendo-se em linhas retas, concentrando-se apenas em uma delas. Apesar disso, a ilusão do círculo ainda é forte.
A ilusão ainda parece bastante forte, mesmo com apenas 3 ou 4 tartarugas:
A taxa de quadros é reduzida consideravelmente para todos esses exemplos de GIF, mas não parece prejudicar a ilusão. A execução local do código fornece uma animação mais suave.
Para contraste, aqui estão alguns que realmente rodam:
... ou eles?
O código pode ser executado com 5 argumentos opcionais: população, resolução, loops, flip e linhas.
population
é o número de tartarugasresolution
é a resolução de tempo (número de quadros de animação por repetição)loops
determina quantas vezes as tartarugas retornam a si mesmas. O padrão 1 fornece um círculo padrão, outros números ímpares dão esse número de voltas na sequência de tartarugas, enquanto números pares fornecem uma sequência de tartarugas desconectadas nas extremidades, mas ainda com a ilusão de movimento curvo.flip
se diferente de zero, faz com que as tartarugas mudem de direção para a viagem de volta (como sugerido pelo aslum, para que nunca se movam para trás). Como padrão, eles mantêm uma direção fixa para evitar a distração visual nos pontos de extremidade.lines
se diferente de zero exibe as linhas nas quais as tartarugas se movem, para consistência com a imagem de exemplo na pergunta.Exemplos com
flip
conjunto, com e semlines
. Eu deixei meu exemplo principal acima sem virar, porque eu prefiro não ter um salto esporádico, mas a borda do círculo parece mais suave com todas as tartarugas alinhadas, então a opção existe para que as pessoas escolham o estilo que preferem ao correr o código.Pode não ser imediatamente óbvio como as imagens acima foram todas produzidas a partir desse mesmo código. Em particular, a imagem mais acima, com um loop externo lento e um loop interno rápido (aquele que se parece com um cardióide que alguém acidentalmente derrubou). Escondi a explicação abaixo, caso alguém queira adiar a descoberta enquanto experimenta / pensa.
Ao experimentar números diferentes, achei algumas dessas distorções mais interessantes do que os originais mais simétricos, então queria incluir uma aqui ...
fonte
C
Resultado:
fonte
system("cls"); // xD
SVG (sem Javascript)
Link JSFiddle aqui
fonte
http://jsfiddle.net/z6vhD/13/
intervaltime
altera o FPS (FPS = 1000 / intervalo).balls
muda as # bolas.maxstep
ajusta as # etapas em um ciclo, quanto maior, mais 'suave' ela é. 64 deve ser grande o suficiente onde pareça suave.Modelado como um círculo em movimento, em vez de mover as bolas ao longo das linhas, mas o efeito visual (deveria ser?) O mesmo. Parte do código é bem detalhada, mas não é um código de golfe, então ...
fonte
requestAnimationFrame
vez disso , use . JSFiddle modificado usandorequestAnimationFrame
.Animações CSS
Uma solução usando apenas animações css (consulte a animação no JSFiddle - observe que adicionei os prefixos específicos do navegador no violino para que ele funcione nas versões mais recentes).
fonte
-webkit-
para Webkit e-moz-
para Mozilla) Aqui está o mesmo violino com prefixos atualizados: jsfiddle.net/nBCxz/3Mathematica
Aqui está um envio bastante direto.
Se você ligar,
animateCircle[32]
obterá uma animação elegante com 32 linhas e círculos.É completamente tranquilo no Mathematica, mas tive que limitar um pouco o número de quadros para o GIF.
Agora, o que acontece se você colocar dois discos em cada linha? (Ou seja, adicione
Disk[-Sin[t + phase]*line, 0.05]
à lista dentro doMap
.)Você também pode colocá-los fora de fase a 90 ° (use em
Cos
vez de-Sin
):fonte
{t, 0, 2 \[Pi]}
para,{t, 0, 2 \[Pi] - 2 \[Pi]/60, 2 \[Pi]/60}
para que não haja dois quadros idênticos e mudarAnimate
paraTable
. Então você poderá exportar GIF.Animate
). Vou tentar usarTable
novamente embora.Gráfico de pizza VBScript + VBA + Excel
Isso fará seu processador chorar um pouco, mas parece bonito e acredito que funciona de acordo com as especificações. Usei a resposta de @ Fabricio como um guia para implementar o algoritmo de movimento circular.
EDIT: fez alguns ajustes para melhorar a velocidade de renderização.
O código:
fonte
Excel, 161 bytes
A2 (ponto final) determina o tempo (segundos) para uma 'revolução' completa.
Cada célula dentro das linhas é uma condicional básica relacionada ao valor da linha correspondente. Por exemplo, K2 é:
E a célula central (K9) é:
Forçou a animação pressionando 'delete' em uma célula aleatória para acionar constantemente uma atualização.
Sei que esse é um tópico antigo, mas atividades recentes o levaram ao topo e pareceu atraente por algum motivo. Ouvinte de longa data pcg, chamador pela primeira vez. Seja gentil.
fonte
Apenas por diversão com o PSTricks.
fonte
Fortran
Cada quadro é criado como um arquivo gif individual usando o módulo gif Fortran em: http://fortranwiki.org/fortran/show/writegif
Então, trapaceio um pouco usando o ImageMagick para mesclar os gifs individuais em um gif animado.
UPDATE: Defina novo = .true. para obter o seguinte:
fonte
Obrigatório Versão C64 .
Copie e cole no seu emulador favorito:
fonte
Uma versão compacta em javascript, alterando as configurações padrão para algo diferente
http://jsfiddle.net/yZ3DP/1/
HTML:
JavaScript:
fonte
bw=10
). Edite sua resposta para mostrar seu código. Ah, e enquanto você está nisso, há um bug que você deve corrigir: substituatime+i*0.39*0.29
portime+i*Math.PI/num
nos cálculos trigonométricos para que as coordenadas sejam calculadas corretamente para qualquer valor denum
. (PS Atualizado JSFiddle aqui . E bem-vindo ao codegolf.stackexchange.com) #Minha opinião com Elm . Sou um iniciante total que aceitará PRs com prazer para melhorar esta solução ( GitHub ):
Observe que este envio é realmente pontos em movimento em linhas retas:
fonte
Second Life LSL
início da imagem alfa da tartaruga (clique com o botão direito do mouse abaixo para salvar a imagem)
final da imagem alfa da tartaruga (clique com o botão direito do mouse acima para salvar a imagem)
construindo o objeto:
faça uma raiz prim cilindro tamanho <1, 1, 0,01> fatia 0,49, 0,51, cor < 0, 0, 0>
faça a descrição deste cilindro "8,1,1,1" sem as aspas (muito importante)
faça um cilindro, nomeie-o "cyl", cor <0,25, 0,25, 0,25> alfa 0,5
duplicar o cyl 48 vezes
faça uma caixa, chame-a de "esfera", cor <1, 1, 1> transparência 100, exceto a transparência superior 0
coloque sua textura de tartaruga na face 0 da caixa, a tartaruga deve ficar de frente + x
duplicar a caixa 48 vezes
selecione todas as caixas e cilindros, selecione o último cilindro raiz,link (controle L)
coloque estes 2 scripts na raiz:
fonte