Finden Sie eine Möglichkeit, mit Zeichen in einer Konsole Kreise mit einem bestimmten Radius zu erstellen. Bitte geben Sie den Schriftnamen und die Schriftgröße an. Geben Sie außerdem mindestens ein Beispiel für die Ausgabe an.
Zum Beispiel:
Eingang:
3
Ausgabe:
******
** **
** **
* *
** **
** **
******
... Nun, etwas sieht besser aus als dieser "handgezeichnete" "Kreis" mit einem Radius von 3.
Bonusfrage: Ellipsen. :) :)
code-challenge
ascii-art
Mateen Ulhaq
quelle
quelle
Antworten:
Javascript (360)
http://jsfiddle.net/YssSb/3/ (
f
ist ein Korrekturfaktor für das Verhältnis von Zeilenhöhe zu Schriftbreite. Wenn Sie eine quadratische Schriftarteneinstellung verwenden, dh Zeilenhöhe = Schriftgröße festlegen, können Sie diese festlegen f = 1 und erhalte "quadratische" Kreise. Oder setzef
willkürlich für Ellipsen.)Ausgabe für 3 (interessanterweise versehentlich genau die gleiche Form wie OP), 5, 15:
quelle
ein Bresenham-Kreis in der Scala (35)
Der Bresenham - Algorithmus hat 2 Hauptpunkte:
Wie es geht:
Dies ist kein Code-Golf, aber all diese Zahlen an der Spitze der vorhandenen Lösungen ließen mich denken, dass dies der Fall ist, und so verbrachte ich nutzlose Zeit damit, meine Lösung zu spielen. Deshalb habe ich auch oben eine nutzlose Nummer hinzugefügt. Es ist 11 mal Pi gerundet.
Die Schriftartfrage wird vom Webserver der Website und Ihren Browsereinstellungen festgelegt. Nun, da ich es sehe, ist es
Die Schriftgröße beträgt 12px. Ziemlich nutzlose Informationen, wenn Sie mich fragen, aber wer tut das?
Bonus: Ellipsen und Probenausgabe:
Der Aufruf ist
zum Beispiel
Ich habe den Ratio-Parameter für Int eingeschränkt, um ihn einfach zu halten, aber er kann leicht erweitert werden, um Floats zu ermöglichen.
quelle
Python (172)
172 Zeichen einschließlich der beiden obligatorischen Zeilenumbrüche. Verwendet den Bresenham-Algorithmus für konische Kurven (keine Divisionen oder Multiplikationen); Es werden nur Kreise für quadratische Schriftarten ausgegeben, sie sollten jedoch von Treppeneffekten ausgenommen sein ( dh sie haben immer die gleiche Breite).
Nicht sehr hübsch, aber gut, ich dachte, ich würde es versuchen.
Bearbeiten : Tippfehler, Ergänzung durch Division ersetzt .
quelle
Perl (92)
Ich habe mich für die „Bonusfrage“ entschieden und das Seitenverhältnis der Charaktere ausgenutzt, um Ellipsen zu zeichnen :)
Beispielausgaben:
quelle
Haskell (
112109)Dies funktioniert, indem überprüft wird, ob x² + y² - r² <n für alle Punkte ist. Alle Punkte, für die dies zutrifft, sind Sterne, alle anderen sind Leerzeichen.
Beispiele:
Ein großes Beispiel finden Sie hier: http://www.ideone.com/t042u
quelle
Python, 180 Zeichen
Dieser Code macht Kreise, wenn die Schrift quadratisch ist. Es ist ziemlich einfach zu ändern, um nominelle Ellipsen zu erzeugen, wenn Sie das Verhältnis von Schrifthöhe zu -breite kennen.
Beispiele:
quelle
C, 127 Bytes, Schriftname: Arial Super Bold
Ergebnis:
quelle