A costura da curva é o processo de "costura" em conjunto com várias linhas retas para criar uma curva, da seguinte forma:
Para obter uma explicação da costura curva, visite este site .
Desenharemos nossa curva no canto superior esquerdo da tela, como mostra a imagem acima.
Dado um número inteiro n
(via STDIN ou um parâmetro de função), sendo o número de linhas a desenhar e um número inteiro de p
pixels, sendo o intervalo entre os pontos de partida, desenhe uma curva de linha reta.
Linhas horizontais / verticais são necessárias e devem fazer parte da contagem de linhas.
Exemplo de saídas:
n = 25, p = 15
n = 20, p = 20
Este é um desafio do código-golfe , pelo que o código mais curto vence .
code-golf
graphical-output
James Williams
fonte
fonte
Respostas:
Mathematica,
555150476468 bytesDefine uma função que produz a imagem conforme especificado quando chamada como
Produzindo
Editar : foi necessário adicionar alguns caracteres para garantir que o segundo parâmetro fosse realmente interpretado como pixels.
Editar : mais quatro bytes para plotar as linhas horizontais.
fonte
Python - 74
Como a pergunta não especifica unidades, dimensionamento de eixos etc., estou apresentando a seguinte solução mínima:
fonte
*p
;). Além disso, você tem certeza de que não está adicionando uma linha horizontal e / ou vertical? esses não estão nas saídas de exemplo. finalmente, notei na minha, que é mais curto para compensar a primeira coordenada horizontalmente em vez do segundo (porque você pode salvar o-
e os parênteses)Bash + Imagemagick + xview, 124 bytes
Saída para
./curvestitch.sh 25 15
:fonte
Perl,
121130 bytesA entrada é via
STDIN
. Os valores são separados por vírgula.EDIT: Temos novas regras. Não sei por que, mas os dois primeiros pixels são invisíveis e tive que adicionar um deslocamento ...
Aqui estão alguns testes:
25x15:
6x72:
fonte
BBC Basic, 58 caracteres ascii, tamanho de arquivo tokenised 49
Faça o download do emulador em http://www.bbcbasic.co.uk/bbcwin/bbcwin.html
p*=2
é necessário porque, no modo padrão, o BBC Basic mapeia um quadrado lógico de 2x2 para um único pixel físico.O BBC Basic tem a origem no canto inferior esquerdo da tela, com as coordenadas y subindo. Na minha máquina, a janela padrão possui uma coordenada y superior de 974 (a sua pode ser diferente.) 7 caracteres podem ser salvos se for permitido plotar no canto inferior esquerdo da tela. A adição
MODE16
após a primeira:
redimensionará a janela para garantir que a coordenada y superior seja 799.fonte
Html + JavaScript
155157 183Edit: learnig o que eu posso cortar sem perda de funcionalidade
Edit 2: como sugerido por @Optimizer
Fiddle Primeiro número de linhas de entrada, segundo intervalo de pixels de entrada
Violino Ungolfed
fonte