Em um espírito semelhante a esta pergunta , sua missão é criar o logotipo mais bonito com no máximo 1K de código.
Regras:
No máximo 1K de código (inclusive), sem dados externos.
A resposta com mais votos positivos vence.
Diverta-se!
popularity-contest
chubakueno
fonte
fonte
Respostas:
SVG
1kB? Luxo. Eu posso até imprimir bastante a saída, em vez de remover todo o espaço em branco desnecessário. (O recuo, é claro, usa guias, que o Markdown converte em espaços, e é por isso que a contagem de caracteres pode parecer maior que o 977 real. A remoção de espaço em branco desnecessário a reduz para 861).
As sobreposições são tratadas corretamente desenhando os anéis em uma direção, aplicando um clipe e desenhando-os na outra direção. As cores e proporções são extraídas de um documento oficial que, por algum motivo, usa as curvas de Bézier em vez de círculos.
fonte
Javascript (núcleo) - 1000 em ponto. - WebKit (Chrome)
Brincando com tela.
Não tenho certeza se é 1024 ou 1000
K
, mas conseguiu baixá-lo para1000982940: DAdequado apenas para navegadores WebKit. Chrome OK. Firefox uma bagunça. Pode olhar para torná-lo entre navegadores.
Código:
940: Inserção
onload
e inclusão do script no final dabody
tag + bug de alinhamento e correção do Firefox.Violino:
http://jsfiddle.net/Ifnak/XSBLg/embedded/result/http://jsfiddle.net/Ifnak/4fSWm/5/embedded/result/
Carrega no Firefox e no Chrome, mas é bastante pesado em recursos no FF. Usar
requestAnimationFrame()
ajudou um pouco, mas não o suficiente.Observe que a neve fica no fundo, role para baixo para ver o crescimento lento. Inicialmente teve alguma pintura no chão, mas não conseguiu encaixá-lo em 1024 chr.
Resultado (screencast GIF de baixa qualidade):
fonte
Mathematica
Da minha resposta nas perguntas e respostas do Mathematica.SE :
Editar: Na versão 10, o estilo de iluminação padrão foi alterado; para tornar o gráfico acima um vai precisar adicionar a opção
Lighting -> "Classic"
paraGraphics3D
.Brincando com a iluminação para produzir um efeito bidimensional plano:
Para Oliver, que disse que meu primeiro resultado foi "3D demais", aqui está uma renderização 2D real via código do jVincent com minha refatoração, também a partir do thread vinculado:
fonte
Ruby, 321
Infelizmente, um certo chefe de estado parece ser o assunto principal da maioria das notícias olímpicas até agora. Assim, aqui está o meu logotipo do estilo livre (mascote?) Para os Jogos de 2014.
Saída: (Faça backup e estrabismo. Desculpe pela renderização primitiva, mas ele não merece melhor.)
fonte
Bash + ImageMagick
Saída de amostra:
fonte
FreePascal
Olimpíadas de Inverno? Que tal alguns flocos de neve fractal em vez de anéis regulares.
A recursão para o ramo central é bastante óbvia: (dx, dy) = 0,5 (dx, dy). Os ramos esquerdo e direito são baseados na rotação por multiplicação da matriz:
x = x cos (a) - y sen (a)
y = x sen (a) + y cos (a)
1/4 = 0,5 cos (60) e 7/16 é uma boa aproximação de 0,5 sin (60).
. .
fonte
Java
Semelhante à minha resposta SVG, mas
Note que eu não tentei jogar golfe, apesar da possibilidade de alguns truques interessantes (como em
-57*~dir
vez de57*(1+dir)
. Está em 923 caracteres, mas o golfe chega a 624 com bastante facilidade.fonte
Commodore 64 BASIC
Mais uma vez, uma resposta C64, mas desta vez estou autorizado a usar sprites ! Yay!
Lembro que se você quisesse usar sprites, começaria seu programa com várias
DATA
declarações chatas . Para definir um padrão de sprite monocromático de "alta resolução" (24x21 pixels), são necessários 63 bytes. Na verdade, existe um editor de sprites online que calcula os dados para você, então:Também vou precisar de mais alguns DADOS para as cores e posições. Acabei de copiar isso da minha resposta para o logotipo original dos Jogos Olímpicos :
Então, você costuma definir
V=53248
. Este53248
deve ser um número importante, porque ainda me lembro 25 anos depois :) Acontece que é o endereço base do VIC-II (Video Interface Controller):Depois, li o padrão de sprite na memória, começando no endereço
832
. É estranho apenas escrever em um local de memória, sem alocação, nãonew
, nada disso :) O endereço inicial precisa ser múltiplo de 64.Vou usar o mesmo padrão para todos os sprites.
C
é o código de coresX
eY
são as posições horizontal e vertical dos círculos.POKE
São necessários mais alguns s:V+0
,V+2
,V+4
, Etc ... são os locais horizontais de cada sprite, enquantoV+1
,V+3
,V+5
... são verticais. As cores do sprite começam no registroV+39
:Os ponteiros de dados do sprite começam em
2040
e, como os dados começam em832
, obtemos832/64
=13
, então:Para ativar os sprites, defino bits
0-4
do registroV+21
. Também mudei o fundo para branco, para podermos ver o círculo azul.É isso aí!
fonte
V+23
para altura dupla eV+29
largura dupla. (bit # x para sprite # x).LaTeX / TikZ
Tamanho: 876 bytes (12 linhas, linha com 72 caracteres e final de linha)
Tamanho: 817 bytes em uma linha e com duas otimizações:
tikz
de classestandalone
, veja o comentário do Assistente de Trigo.soft=blank
podem ser reduzidos pela definição de um estilob
.LaTeX / TikZ (versão legível)
A seguinte versão mais longa é provavelmente mais fácil de entender.
A sobreposição dos anéis é tratada desenhando os anéis com segmentos em branco primeiro. Em um estágio posterior, os anéis são desenhados novamente, mas desta vez os segmentos em branco são preenchidos e os outros segmentos já desenhados dos anéis permanecem intocados. Portanto, o recorte não é usado.
O anel com as margens brancas é desenhado por um círculo com uma linha dupla. A área entre as linhas é preenchida com a cor do anel e as linhas duplas mais finas formam a margem branca externa e interna.
As cores e dimensões são retiradas da descrição da página em PDF da página 5 do documento oficial (consulte a resposta de Peter Tayler).
fonte
\documentclass[tikz]{standalone}
graças a esta dica .b
para evitar o tempo deblank=soft
uso quatro vezes.C ++ 1024 bytes
Atualizada: agora com antialiasing. O código foi um pouco descodificado enquanto ainda cabia (exatamente) 1K.
Não usa nenhuma função de biblioteca, exceto as funções ostream, para gravar o arquivo de saída.
Produz um arquivo .ppm:
fonte
R, 70 caracteres
Usando estatísticas CRAN-R.
fonte
GLSL
Sinto que estou um pouco atrasado para a festa, mas talvez eu possa compensar isso com a primeira submissão do GLSL neste site. Ele deve ser usado como sombreador de fragmento para uma primitiva de preenchimento de tela e espera a resolução da viewport no
iResolution
uniforme.Cores e posições são "emprestadas" da apresentação de Peter Taylor . Eu tive que encurtar alguns nomes de variáveis para ficar abaixo de 1024 caracteres, mas espero que ainda seja legível.
Veja em Shadertoy (se o seu navegador suportar WebGL).
fonte
Mathematica
Substituí minha resposta original por uma que se baseia em regiões e suas interseções. O tamanho do código é 973 bytes, sem uso deolfo.
As regiões 1-5 são os anéis. Os anéis têm um raio interno de 2,5 unidades; o raio externo é de 3 unidades. A proporção da razão interna para a externa e a lógica geral da abordagem podem ser encontradas aqui .
Por que não podemos simplesmente imprimir os 5 anéis sem levar em consideração as camadas.
Se traçarmos esses anéis imediatamente, eles não se entrelaçam. Observe que o anel amarelo está no topo dos anéis azul e preto; o anel verde fica no topo dos anéis preto e vermelho.
Inverter cores em 4 interseções de anéis.
As regiões 6, 8, 10 e 12 são retângulos que servem para especificar em qual interseção de dois anéis focar.
As regiões 7, 9, 11 e 13 são as "sobreposições de anel", onde o anel na parte inferior deve estar na parte superior.
Quais cruzamentos tiveram suas cores alteradas?
A seguir, destacamos as regiões de interseção nas quais as cores foram "invertidas". Isso foi realizado alterando as
BoundaryStyle
regiões 7, 9, 11 e 13 paraWhite
.fonte
Javascript (three.js) - 910 bytes
Dado um elemento html, essa função criará os anéis como objetos 3D e renderizará uma imagem estática para o elemento. Funciona em navegadores compatíveis com WebGL. FIDDLE
fonte
gato (10 bytes)
Foi tão curto que o site se recusou a enviá-lo até eu adicionar essa descrição. O logotipo representa os Jogos Olímpicos.
fonte
C ++ com SFML (1003, incluindo espaço em branco)
Não é pequeno por nenhum trecho da imaginação, mas mantido o mais conciso e legível possível e ainda abaixo de 1k.
Editar: cores atualizadas com base no envio SVG de @Peter Taylor.
fonte
Delphi
Resultado
fonte
fez uma solução baseada em uma edição Java Swing GUI UltraGolfed (696 charas)
Semi-comprimido: 971
fonte
POWERSHELL,
código 869 e saída na captura de tela
fonte
SpecBAS
Cada anel é constituído por um círculo interno / externo e preenchido por inundação.
Tinha que encontrar as interseções manualmente e preenchê-las individualmente (para que você ainda possa ver algumas das linhas entre elas).
fonte