Dies ist eine grafische Ausgabe-Herausforderung, bei der es darum geht, den kürzesten Code pro Sprache anzugeben.
Aufgabe
Ihr Code sollte ein einzelnes lila Pixel (Hex-Wert 800080 oder RGB (128, 0, 128)) darstellen und sich im Uhrzeigersinn um einen Kreis bewegen. Es sollte genau 60 Sekunden dauern, bis eine vollständige Umrundung des Kreises erfolgt ist, und sollte unbegrenzt fortgesetzt werden. Auf dem Bildschirm oder im Fenster sollte außer dem Pixel nichts anderes angezeigt werden. Die Breite des Kreises sollte 0,75 betragen (passend gerundet), die Breite des Bildschirms oder Fensters und der Hintergrund sollte weiß sein. Um dumme Lösungen zu vermeiden, sollte der Bildschirm oder das Fenster mindestens 100 Pixel breit sein.
Ihr Code sollte ein vollständiges Programm sein .
Sprachen und Bibliotheken
Sie können eine beliebige Sprache oder Bibliothek verwenden. Ich würde jedoch gerne in der Lage sein, Ihren Code nach Möglichkeit zu testen. Wenn Sie also klare Anweisungen zur Ausführung in Ubuntu geben können, wären Sie sehr dankbar.
Fehlende Top-20-Sprachen. Hilfe benötigt.
In den folgenden 20 Programmiersprachen fehlt derzeit eine Lösung.
C , C ++, C # , Python , PHP , Visual Basic .NET , Perl, Delphi / Object Pascal, Assemblierung , Objective-C , Swift, Pascal, Matlab / Octave , PL / SQL, OpenEdge ABL, R
Katalog
Das Stapel-Snippet am Ende dieses Beitrags generiert den Katalog aus den Antworten a) als Liste der kürzesten Lösungen pro Sprache und b) als Gesamt-Bestenliste.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
## Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
## Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Snippet angezeigt wird:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
<style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } table td { padding: 5px; }</style><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="language-list"> <h2>Shortest Solution by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr> </thead> <tbody id="languages"> </tbody> </table> </div> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table><script>var QUESTION_ID = 62095; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 9206; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function commentUrl(index, answers) { return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER; } function getAnswers() { jQuery.ajax({ url: answersUrl(answer_page++), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { answers.push.apply(answers, data.items); answers_hash = []; answer_ids = []; data.items.forEach(function(a) { a.comments = []; var id = +a.share_link.match(/\d+/); answer_ids.push(id); answers_hash[id] = a; }); if (!data.has_more) more_answers = false; comment_page = 1; getComments(); } }); } function getComments() { jQuery.ajax({ url: commentUrl(comment_page++, answer_ids), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { data.items.forEach(function(c) { if (c.owner.user_id === OVERRIDE_USER) answers_hash[c.post_id].comments.push(c); }); if (data.has_more) getComments(); else if (more_answers) getAnswers(); else process(); } }); } getAnswers(); var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/; var OVERRIDE_REG = /^Override\s*header:\s*/i; function getAuthorName(a) { return a.owner.display_name; } function process() { var valid = []; answers.forEach(function(a) { var body = a.body; a.comments.forEach(function(c) { if(OVERRIDE_REG.test(c.body)) body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>'; }); var match = body.match(SCORE_REG); if (match) valid.push({ user: getAuthorName(a), size: +match[2], language: match[1], link: a.share_link, }); else console.log(body); }); valid.sort(function (a, b) { var aB = a.size, bB = b.size; return aB - bB }); var languages = {}; var place = 1; var lastSize = null; var lastPlace = 1; valid.forEach(function (a) { if (a.size != lastSize) lastPlace = place; lastSize = a.size; ++place; var answer = jQuery("#answer-template").html(); answer = answer.replace("{{PLACE}}", lastPlace + ".") .replace("{{NAME}}", a.user) .replace("{{LANGUAGE}}", a.language) .replace("{{SIZE}}", a.size) .replace("{{LINK}}", a.link); answer = jQuery(answer); jQuery("#answers").append(answer); var lang = a.language; lang = jQuery('<a>'+lang+'</a>').text(); languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang, user: a.user, size: a.size, link: a.link}; }); var langs = []; for (var lang in languages) if (languages.hasOwnProperty(lang)) langs.push(languages[lang]); langs.sort(function (a, b) { if (a.lang_raw > b.lang_raw) return 1; if (a.lang_raw < b.lang_raw) return -1; return 0; }); for (var i = 0; i < langs.length; ++i) { var language = jQuery("#language-template").html(); var lang = langs[i]; language = language.replace("{{LANGUAGE}}", lang.lang) .replace("{{NAME}}", lang.user) .replace("{{SIZE}}", lang.size) .replace("{{LINK}}", lang.link); language = jQuery(language); jQuery("#languages").append(language); } }</script>
Antworten:
Verarbeitung ,
1019796 Bytes4 Bytes dank Flambino.
1 Byte dank Kritixi Lithos.
Dadurch wird ein Standardfenster von 100 x 100 Pixel mit der erforderlichen Animation erstellt.
Haftungsausschluss: Dieses Bild ist kein GIF. Starren Sie es keine Minute an.
quelle
π/1800
Winkelradiant gleichzeitig. (Es war vorπ/3600
10 Sekunden wegen meinesQB64, 79 Bytes
QB64 ist ein QBasic-Emulator, der einige nette Funktionen hinzufügt. Dieses Programm verwendet eine (
CLS,15
), die von Vanilla QBasic nicht unterstützt wird.Das ist sehr laut. Mit dem
PLAY
Befehl wird die Ausführung für kurze Zeit angehalten, bevor der Bildschirm gelöscht wird. Andernfalls flackert das Pixel und wird unsichtbar.Laden Sie QB64 herunter , laden Sie diese Datei, klicken Sie auf
Run
und dann aufStart
.Hier ist es in Aktion:
Ich habe ein paar Tricks (
SCREEN 7
anstelle vonSCREEN 13
undPSET
anstelle vonPOKE
) von @ DLoscs Antwort genommen, also ist die Anerkennung fällig. Wie in seiner Antwort, ist meine Magenta tatsächlich#8B008B
, was vom OP als akzeptabel erachtet wurde.(Die Konstante
9.55
ist eine Annäherung an30/π = 9.54929658551
. Ist sie nah genug?)quelle
PLAY
für eine Verzögerung zu verwenden. Ich hätte schwören können, dass es einen Code für eine Pause gibt, aber ich sehe ihn jetzt nicht in der Hilfedatei. Ich habe überlegt (eine Funktion von)TIMER
als Parameter zu verwenden, habe es aber nie versucht, um festzustellen, ob es kürzer ist. Ein dickes Lob!PSET
von dir gelöst, also ein dickes Lob zurück :) Es sieht so aus, als ob eine Pausen0
länger ist alsc
. Ich mag es auch ein bisschen als Regelverbesserung: Das OP sagte, nichts anderes könne im Fenster angezeigt werden, aber niemals, dass mein Programm nicht laut losgehen könnte. BEEP BEEP BEEP .Java,
449443439 BytesWeil ich immer dumme Ideen hatte. Wie Golfen in Java;).
Edit: Danke für @Ypnypn für das Golfen 7 Bytes!
Edit2: Danke für @Franz D. für das Speichern von 3 Bytes!
quelle
8388736
.JFrame
, verwendenFrame
, können Sie javax Import entfernen.Mathematica,
10210194 BytesErstellt einen weißen Kreis, der ausgeblendet ist, und platziert einen Punkt, der der Kante von 0 bis 2π folgt. Mit der
DefaultDuration
Option von Mathematica kann ich festlegen, dass alle 60 Sekunden eine Schleife abgeschlossen wird.Hier ist eine beschleunigte Version der Ausgabe:
BEARBEITEN: Wechseln Sie
Circle
zuDisk
, um 2 Zeichen zu speichern, und fügen Sie ein negatives Vorzeichen hinzut
, um den Cursor im Uhrzeigersinn zu bewegen.BEARBEITEN: 7 Bytes mit dem
~
Operator gespeichert (danke an Mauris).quelle
a~f~b
anstelle von verwendenf[a,b]
, würde das nicht IhreRotate
kürzere machen?)Point@{0,1}
und ich glaube nicht, dass Sie die Liste benötigenPurple,Point...
.HTML, 235
290295354347BytesAls
.html
Datei speichern und in einem Browser öffnen, der keine Herstellerpräfixe wie Chrome oder Firefox benötigt. Oder probieren Sie diese Geige .Dies ist eine neue Version, die viel kürzer ist als mein erster Versuch, den ich 5 Minuten vor einem Meeting geschrieben hatte. Die neue Größe der Zeichenfläche ist ein Quadrat, das auf der Höhe des Ansichtsfensters basiert. Das funktioniert ganz gut und ist nicht auf eine bestimmte definierte Höhe beschränkt. Ich bin sehr genau über die Einstellungen in der Herausforderung (75% Größe der Eltern, lila und 1px). Daher muss und kann ich die folgenden Regeln nicht verwerfen oder vereinfachen:
Ungolfed
Dies ist die ungolfed Version mit sauberem Markup:
Bearbeitungen
linear
jetzt eingestellt.)}}
. Dank Zahnbürste .12%
stattdessen12px
derselbe Wert, der der Größe des übergeordneten Elements entspricht.quelle
)}}
vom Ende fallen (der CSS-Parser beendet automatisch die Blöcke)TI-BASIC, 44 Bytes
Für die TI-84 + CSE / CE-Rechner, die einige eingeschränkte BASIC-Farbgrafiken unterstützen.
Die Farbe hier ist Magenta oder Farbe 13 (man kann auch den
MAGENTA
Token verwenden).Ich verwende
rand
stattdessen1
für die Endlosschleifenbedingung, um eine winzige Verzögerung (~ 15 ms) zwischen dem Anzeigen des Pixels und dem erneuten Ausschalten des Pixels bereitzustellen.Schalten Sie Ihren Taschenrechner in den Radian-Modus, bevor Sie dieses Programm ausführen. Ich zähle das nicht in der Größe, weil es der Standardzustand ist. Setzen Sie
Ans
den Wert ebenfalls auf 0, indem Sie vor dem Programm eine 0 eingeben. Dies ist auch die Standardeinstellung.Vielen Dank an @quartata für das Testen dieses Programms (ich besitze keinen Farbrechner).
quelle
Java,
339308289287 BytesVielen Dank an @Peter Lenkefi, dessen großartige Lösung mich zum Laufen gebracht und dessen For-Loop ich schamlos kopiert habe!
Die Hauptersparnis ergab sich aus der Umstellung auf reines AWT und dem Rendern direkt im Frame - ohne JPanel (oder Canvas). Ich habe den Zähler auch zu einer ganzzahligen Variablen gemacht, die durch einfaches Inkrementieren aktualisiert wurde, und ein paar Bytes gespeichert, um die Konstanten zu ändern, damit hier und da eine Ziffer entfernt werden kann.
EDIT: Danke an @Peter Lenkefi und @tobii für ihre Vorschläge in den Kommentaren. Beating HTML wäre schön - weiß jemand, wie man die Ausführung in Java zuverlässig anhält, ohne sleep () zu verwenden und Ausnahmen abfangen zu müssen?
EDIT 2: JAVA BEATS HTML (derzeit bei 290 Bytes!): D Das Timing ist jetzt maschinenabhängig, aber ~ 60 Sekunden für einen vollen Kreis auf meinem Computer, was laut @Lembik in Ordnung ist. Nochmals vielen Dank an @PeterLenkefi für seinen Vorschlag - meine Antwort ist mehr als die Hälfte seines :)
EDIT 3: @Ajay schlug vor, das "re" von "repaint" zu entfernen. Zwei Bytes weniger. Wir kommen dorthin :)
quelle
int c,i
und das Auslassenint
infor(int i=..
sollte etwas mehr sparen.new Frame(){...}
.Haskell,
143136 BytesDies verwendet das Gloss- Paket:
Die schönere Version ist
quelle
.0
.HTML (CSS?), 167 Byte
Inspiriert von der Antwort von insertusernamehere
Ungolfed:
quelle
HTML + CSS
wird normalerweise nicht als Programmiersprache betrachtet, es liegt jedoch am OP.body
selbst zu animieren . :)QBasic, 106
Getestet auf QB64 , das besagt, dass es eine Linux-Version hat (obwohl ich es nur unter Windows ausprobiert habe).
SCREEN 7
Legt den Grafikmodus fest.COLOR 5,15
Stellt dunkles Magenta als Vordergrundfarbe und helles Weiß als Hintergrundfarbe ein.DO ... LOOP
ist eine Endlosschleife. Normalerweise sehen Sie es alsDO WHILE ... LOOP
(oder Sie können esLOOP WHILE
stattdessen setzen oderUNTIL
für eine negierte Bedingung verwenden), aber Sie können die Bedingung auch auslassen. In diesem Fall wird sie für immer wiederholt.TIMER
ist die Anzahl der Sekunden seit Mitternacht als Gleitkommawert.CLS
= Bildschirm löschen.PSET
SETZT einen Punkt auf eine Farbe, standardmäßig auf eine Vordergrundfarbe.i
Beginnt bei Null und zählt jedes Mal durch die Schleife um pi / 300 hoch, wodurch sich nach 600 Wiederholungen ein vollständiger Kreis schließt. Wir berechnen pi als 4 * arctan (1).t# = TIMER: WHILE TIMER < t# + 0.1: WEND
.#
Für einen Unterschied von 0,1 Sekunden benötigen wir jedoch keine Zahlen mit doppelter Genauigkeit (markiert mit ), und es stellt sich heraus, dass dieIF cond THEN [GOTO] line
Syntax 1 Zeichen kürzer als eineWHILE ... WEND
Schleife ist.Die Schleife wiederholt sich 600 Mal in 60 Sekunden und schließt so einen vollen Kreis.
Vorbehalte
#8B008B
anstelle der angeforderten#800080
(mit dem OP gelöscht).i
inkrementiert wird, so lange ändern, bis eine Umdrehung nahe genug bei 60 Sekunden liegt. (Versuchen Sie einen Nenner von 69 oder 68.)quelle
SCREEN 8
statt zu7
tun?mIRC-Skript, 184 Bytes
Dies ist für mIRC in Wine optimiert. Starte mIRC, drücke
Alt + R
und füge es ein, schließe den Editor und starte es mit/g
Das Timing auf dem GIF ist möglicherweise nicht korrekt.
quelle
R, 170 Bytes
Es beruht auf paket
animation
. Und hier ist ein GIF, um zu zeigen, dass es funktioniert:Ungültiges Speichern der Lösung in einem GIF (139 Byte):
Hierfür muss ImageMagick installiert sein. Das Ergebnis wird als GIF gespeichert.
quelle
Rubin mit Schuhen, 159 Bytes
Das Pixel ist eigentlich die Spitze des Sekundenzeigers einer analogen Uhr. Dieser ist also absolut präzise.
Rubin mit Schuhen, 134 Bytes
Dies ist eine auf Frames pro Sekunde basierende Alternative, die von den anderen Antworten inspiriert ist. Obwohl die Dokumentation angibt, dass die Standard-FPS 10 beträgt, zeigen praktische Tests, dass es sich tatsächlich um 12 handelt.
Für beide Lösungen gilt: "Die Breite des Kreises sollte 0,75 (entsprechend gerundet) der Breite des Bildschirms oder Fensters sein." Berechnen Sie anhand der Fensterbreite, damit der Pixel gelegentlich den unteren Rand eines nicht quadratischen Fensters verlässt. Ich bin mir nicht sicher, wie mit einem solchen Fall umgegangen werden soll. (Verwenden Sie ein Minimum an Breite und Höhe? Gehen Sie auf einem ovalen Pfad?) Das Fenster beginnt mit der Standardgröße 600 x 500 und ist in der Größe veränderbar.
quelle
D,
286280 Bytes(392 wenn normal geschrieben)
Oder so, wie ich es ursprünglich ohne Golf geschrieben habe:
Hängt von simpledisplay.d und color.d ab, die sich hier befinden: https://github.com/adamdruppe/arsd
Laden Sie einfach diese beiden einzelnen Dateien herunter und speichern Sie sie in demselben Verzeichnis wie den obigen Code. Dann:
dmd yourfile.d simpledisplay.d color.d
Kompilieren und starten Sie sie einfach.Meine kleine Bibliothek wurde geschrieben, um schnelle Animationen wie diese ziemlich einfach zu machen, damit dies gut zu seinen Stärken spielt! Leider mag ich lange Bezeichnernamen und habe keinen
Point
Konstruktor angegeben,float
der 18 Byte Casting und ... ein paar Dutzend Schreibweisen für meine Methodennamen hinzufügt.quelle
C #,
379365 BytesKommt drauf an
System.Windows.Forms
undSystem.Drawing
läuft. Die Ausgabe erfolgt in einem 1000x1000-Fenster.quelle
var
SVG, 177 Bytes
Ungültiges Markup von der Hölle zum Frühstück, aber es läuft (zumindest in Chrome). Wie bei einer HTML5-Zeichenfläche scheint die Standardgröße für eine SVG-Datei 300 x 150 zu sein. Dies wird also vorausgesetzt.
Bearbeiten: Hoppla, ich hatte versehentlich in einer Dauer von 6 statt 60 verlassen. Das behoben, aber auch festgestellt, dass
0.5
das als gerecht funktioniert.5
, also keine Änderung in der Byteanzahl.quelle
X86-Maschinencode -
150146149133127 BytesGolf Version:
'Ungolfed', Quellfassung:
Herunterladbare, Base64-codierte Version
Kopieren Sie diese Adresse und fügen Sie sie in Ihren Browser ein. Benennen Sie die resultierende Datei um
golfcrcl.com
und führen Sie sie in einer DOS-Umgebung aus, z. B. DosBox.quelle
Mathematica
208 185139 BytesBewegt ein lila Pixel um ein als Bild verwendetes Array.
Methode 1 139 Bytes
Methode 2 154 Bytes
Zeichnet ein Pixel innerhalb von 60 Sekunden auf einer Kreisbahn.
Methode 3 193 Bytes
Dies zeichnet eine Uhr mit Häkchen und Beschriftungen in Weiß, für die der Sekundenzeiger ein Pixel ist.
quelle
30
und entfernent
.Obj-C ++ / Cocoa,
777678668657643628 BytesDas ist wahrscheinlich der schlechteste Weg, etwas zu tun, aber ich dachte, ich würde es versuchen.
Kann auf einem Mac (jedenfalls auf meinem) mit
g++ -framework Cocoa file.mm
dem Terminal kompiliert und vom Terminal aus ausgeführt werden ( ctrl-Czum Beenden, da es sich nicht um eine App handelt).Bearbeiten: 99 Bytes gespeichert: Problem behoben
main()
, das unter OS X 10.10 (1. Version nur unter 10.8) ausgeführt werden konnte. Das Übersetzen / Drehen wurde zugunsten einfacher Trigger-Berechnungen übersprungen.Bearbeiten: Weitere 10 Bytes gespeichert: Wurde geändert, um nur
orderFront
das Fenster anzuzeigen. Macht es zwar nicht zum vorderen Fenster, aber auch nichtorderFrontAndMakeKey
, also ...Bearbeiten: Weitere 11 Bytes gespeichert: Übersprungen
NSMakeRect
und eine Ziffer gefunden, die einfach gehen musste.Bearbeiten: Weitere 14 Bytes gespeichert: musste der
NSTimer
Instanz nichts zugewiesen werden und kann anscheinend die Initialisierungr
auf Null überspringen .Bearbeiten: Weitere 15 Bytes gespeichert: Ich kann nicht aufhören. Hilfe schicken.
quelle
Javascript / Processingjs,
175173156153152 BytesZum Ausführen: Besuchen Sie entweder http://www.openprocessing.org/sketch/226733 , um die Aktion mit processing.js zu sehen, oder laden Sie processing 2.0 von processing.org herunter , fügen Sie den Code in die Verarbeitungs-IDE ein, wählen Sie den Javascript-Modus aus und beobachten Sie es geht.
quelle
background(-1)
ist ein Byte kürzer alsbackground(255)
Ulme , 274 Bytes
Probieren Sie es aus oder bearbeiten Sie es in Ihrem Browser:
Kleine Version
Golflose Version
Beachten Sie, dass wir, wenn wir die Importe loswerden und den Umriss um die Leinwand zeichnen, nur noch 149 Bytes haben, aber das ist wahrscheinlich Betrug!
quelle
C # 301 Bytes
Hängt von den Standardgrößenmetriken ab. Größe und Position können in Abhängigkeit von einer Reihe von Faktoren etwas abweichen. Kann oder kann nicht schrecklich flackern; Um dies zu lösen, fügen Sie Folgendes hinzu:
quelle
Lua + Löve, 189 Zeichen
love.update()
erhält als Parameter die seit dem letzten Frame verstrichene Zeit. Zeichnet im Standardfenster 800 x 600 an festen Koordinaten, da die Größe des Fensters ohnehin nicht geändert werden kann.quelle
Python 2 + Pygame,
221198193quelle
C (unter Verwendung von SDL1.2),
237233Kompiliert und läuft mit
gcc -I/usr/include/SDL snippet.c -lSDL -lm && ./a.out
quelle
ActionScript 2.0, 151 Byte
Leider ist Adobe Flash keine Freeware und Google gibt an, dass es unter Linux ohne VM oder Wine nicht funktioniert (und selbst mit Wine funktioniert es meistens nur ). Trotzdem wollte ich sehen, wie gut es bei dieser Aufgabe abschneiden würde. Ziemlich gut, es stellt sich heraus.
Die Grundidee: Erstellen Sie ein neues Movieclip-Objekt, positionieren Sie es bei (200, 200) und zeichnen Sie dann einen Punkt 2 darin, 200 Pixel weiter rechts. Jetzt ist der Movieclip 200 Pixel breit und 1 Pixel hoch. Der Drehpunkt sind die ursprünglichen Koordinaten, mit denen wir begonnen haben. Wenn wir also die
_rotation
Eigenschaft ändern , bewegt sich der Punkt in einem Kreis um den Punkt (200, 200). Praktischerweise_rotation
ist in Grad; 0,25 Grad / Bild * 24 Bilder / Sekunde * 60 Sekunden / Minute = 360 Grad / Minute.Erstellen Sie ein neues Flash-Dokument 1 , öffnen Sie das Bedienfeld „Aktionen“ und fügen Sie den obigen Code ein, um die Installation von Grund auf neu zu starten . Es ist keine weitere Anpassung erforderlich, vorausgesetzt, der Standardhintergrund ist weiß, die Leinwandgröße beträgt 550 x 400 und die Bildrate 24 fps. Drücke Strg-Enter und schau es dir an.
Wenn Sie nicht über Flash selbst verfügen, können Sie die Ergebnisse dennoch mit dem kostenlosen Flash Player anzeigen, der mit den meisten modernen Browsern geliefert werden sollte. Laden Sie die SWF - Datei hier . Wenn Sie es nicht abspielen können, laden Sie auch diese HTML-Seite herunter und öffnen Sie sie mit der SWF-Datei im selben Verzeichnis.
1 Getestet mit Adobe Flash CS4 Professional und Auswahl von "Flash-Datei (ActionScript 2.0)", wenn Sie gefragt werden, welcher Typ von neuer Datei erstellt werden soll.
2 Eigentlich ein kleines Dreieck, wie Sie sehen werden, wenn Sie genug hineinzoomen. Es war die golferischste Art, einen Punkt zu zeichnen.
quelle
JavaScript w / jQuery, 205 Byte
jsfiddle , schnipsel unten
Dies ist vielleicht nicht ganz nach dem Buch. Die Standardgröße einer Leinwand (mindestens in Chrome) beträgt 300 x 150, daher habe ich den Kreis auf 75 x 75 zentriert. Ich könnte es auf 150x75 zentrieren und seinen Radius auf 113px (~ 75% der Breite) einstellen, aber es würde manchmal außerhalb der Leinwand sein, also habe ich stattdessen ~ 75% der Höhe gewählt.
Aber es ist sowieso nicht besonders kurz, also meh '
Code-Snippet anzeigen
quelle
Blitz 2D / 3D , 126 Bytes
Leider wird diese Sprache nur unter Windows unterstützt (obwohl sie möglicherweise in Wine ausgeführt wird).
quelle
Javascript ES6, 202 Bytes
Getestet in Firefox 41.
Wie die andere (fast) reine Javascript-Antwort ist der Kreis auf 75 x 75 zentriert, da die Standardgröße der Zeichenflächenelemente 300 x 150 ist, wie in den HTML-Spezifikationen definiert.
quelle
Matlab,
141136Ich übermittle das nur, damit Sie, Lembik, eine vollständige Liste haben.
Alte Version:
quelle