Beim Kurvensticken werden mehrere gerade Linien "zusammengenäht", um eine Kurve zu erstellen, wie folgt:
Eine Erklärung zu Kurvenstichen finden Sie auf dieser Website .
Wir werden unsere Kurve oben links auf dem Bildschirm zeichnen, wie im Bild oben gezeigt.
Bei einer Ganzzahl n
(über STDIN oder einen Funktionsparameter), bei der es sich um die Anzahl der zu zeichnenden Linien handelt, und bei einer Ganzzahlpixel p
, die das Intervall zwischen den Startpunkten darstellt, wird eine gerade Linienkurve gezeichnet .
Horizontale / vertikale Linien sind erforderlich und sollten Teil der Zeilenanzahl sein.
Beispielausgaben:
n = 25, p = 15
n = 20, p = 20
Dies ist eine Code-Golf- Herausforderung, sodass der kürzeste Code gewinnt .
code-golf
graphical-output
James Williams
quelle
quelle
Antworten:
Mathematica,
555150476468 BytesDefiniert eine Funktion, die das Bild wie angegeben ergibt, wenn es wie aufgerufen wird
Nachgeben
Bearbeiten : Es mussten einige Zeichen hinzugefügt werden, um sicherzustellen, dass der zweite Parameter tatsächlich als Pixel interpretiert wurde.
Bearbeiten : vier weitere Bytes zum Zeichnen der horizontalen Linien.
quelle
Python - 74
Da die Frage keine Einheiten, Achsenskalierung usw. angibt, habe ich die folgende Mindestlösung:
quelle
*p
;). Sind Sie sicher, dass Sie keine horizontale und / oder vertikale Linie hinzufügen? Diese sind nicht in den Beispielausgaben enthalten. Schließlich bemerkte ich in meinem, dass es kürzer ist, die erste Koordinate horizontal anstatt der zweiten zu versetzen (weil Sie die-
und die Klammern speichern können )Bash + Imagemagick + xview, 124 Bytes
Ausgabe für
./curvestitch.sh 25 15
:quelle
Perl,
121130 BytesDie Eingabe erfolgt über
STDIN
. Die Werte sind durch Kommas getrennt.EDIT: Wir haben neue Regeln. Ich bin mir nicht sicher warum, aber die ersten beiden Pixel sind unsichtbar und ich musste einen Versatz hinzufügen ...
Hier sind einige Tests:
25x15:
6x72:
quelle
BBC Basic, 58 ASCII-Zeichen, Token-Dateigröße 49
Laden Sie den Emulator unter http://www.bbcbasic.co.uk/bbcwin/bbcwin.html herunter
p*=2
wird benötigt, weil BBC Basic im Standardmodus ein logisches Quadrat von 2x2 einem einzelnen physischen Pixel zuordnet.BBC Basic hat den Ursprung in der unteren linken Ecke des Bildschirms, wobei die y-Koordinaten nach oben gehen. Auf meinem Computer hat das Standardfenster eine obere y-Koordinate von 974 (Ihre kann unterschiedlich sein). 7 Zeichen könnten gespeichert werden, wenn es erlaubt wäre, in der unteren linken Ecke des Bildschirms zu zeichnen. Durch Hinzufügen
MODE16
nach dem ersten:
wird die Größe des Fensters so geändert, dass die obere y-Koordinate garantiert 799 beträgt.quelle
HTML + JavaScript 155
157 183Bearbeiten: Erfahren Sie, welche Dinge ich ohne Funktionsverlust schneiden kann.
Bearbeiten 2: wie von @Optimizer vorgeschlagen
Fiddle erster Eingang Anzahl von Zeilen , zweites Eingangspixelintervall
Ungolfed Fiddle
quelle