Um Spirograph é um brinquedo que desenha hipotrocóides e epitrocóides. Para esse desafio, focaremos apenas os hipotrocóides.
Da Wikipedia :
Um hipotrocóide é uma roleta traçada por um ponto anexado a um círculo de raio r rolando ao redor de um círculo fixo de raio R , onde o ponto é uma distância d do centro do círculo interior.
As equações paramétricas para eles podem ser definidas como:
Onde θ é o ângulo formado pela horizontal e pelo centro do círculo rotativo.
Sua tarefa é escrever um programa que desenhe o caminho traçado pelo ponto definido acima. Como entrada, você será dado R , r , e d , todos os inteiros entre 1 e 200, inclusive.
Você pode receber essa entrada de stdin, argumentos ou entrada do usuário, mas não pode ser codificada no programa. Você pode aceitá-lo da forma que for mais conveniente para você; como cadeias, números inteiros etc.
Presumir:
- As unidades de entrada são fornecidas em pixels.
- R > = r
A saída deve ser uma representação gráfica do hipotrochoide definido pela entrada. Nenhuma saída ASCII ou outra baseada em texto é permitida. Esta imagem pode ser salva em um arquivo ou exibida na tela. Inclua uma captura de tela ou imagem da saída para uma entrada de sua escolha.
Você pode escolher as cores que desejar para o caminho / fundo, sujeito a uma restrição de contraste. As duas cores devem ter o componente 'Valor' do HSV com pelo menos metade da escala. Por exemplo, se você estiver medindo o HSV [0...1]
, deve haver pelo menos 0.5
diferença. Entre [0...255]
deve haver uma 128
diferença mínima .
Este é um código de golfe, o tamanho mínimo do código-fonte em bytes vence.
R>=r
, mas d
não está restrito r
e pode estar em qualquer lugar no intervalo de 1 a 200.
R=200, r=1, d=200
. Você pode dimensionar a imagem para a entrada, se desejar, ou mantê-la em um tamanho constante, desde que tudo esteja visível.
R > r
ouR ≥ r
? (Mesmo parar
ed
.)