Il s’agit d’un défi de sortie graphique où la tâche consiste à donner le code le plus court par langue.
Tâche
Votre code doit tracer un seul pixel violet (valeur hexadécimale n ° 800080 ou rgb (128, 0, 128)) en effectuant un mouvement de rotation dans le sens des aiguilles d'une montre. Cela devrait prendre exactement 60 secondes pour faire un tour complet du cercle et devrait se poursuivre indéfiniment. Rien d’autre ne doit apparaître sur l’écran ou la fenêtre, à l’exception du pixel. La largeur du cercle doit être de 0,75 (arrondi de manière appropriée), la largeur de l'écran ou de la fenêtre et l'arrière-plan doivent être blancs. Pour éviter des solutions idiotes, la largeur de l’écran ou de la fenêtre doit être d’au moins 100 pixels.
Votre code devrait être un programme complet .
Langues et bibliothèques
Vous pouvez utiliser n'importe quelle langue ou bibliothèque que vous aimez. Cependant, j'aimerais pouvoir tester votre code si possible. Si vous pouviez fournir des instructions claires sur la façon de l'exécuter dans Ubuntu, cela serait très apprécié.
Top vingt langues manquantes. Besoin d'aide.
Les vingt principaux langages de programmation suivants manquent actuellement de solution.
C , C ++, C # , Python , PHP , Visual Basic .NET , Perl, Delphi / Object Pascal, Assemblage , Objective-C , Swift, Pascal, Matlab / Octave , PL / SQL, ABE OpenEdge, R
Catalogue
Le fragment de pile au bas de cet article génère le catalogue à partir des réponses a) sous forme de liste des solutions les plus courtes par langue et b) sous forme de classement global.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
## Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores en les effaçant. Par exemple:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs numéros dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou si vous souhaitez répertorier séparément les pénalités d'indicateur d'interprétation), assurez-vous que le score réel est le dernier numéro de l'en-tête:
## Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de code:
## [><>](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>
Réponses:
Traitement ,
1019796 octets4 octets grâce à Flambino.
1 octet grâce à Kritixi Lithos.
Cela crée une fenêtre par défaut de 100 x 100 pixels avec l'animation requise.
Avertissement: cette image n'est pas un GIF. Ne la regarde pas une minute.
la source
π/1800
radians à la fois. (C'était il y aπ/3600
10 secondes à cause de mon cerveau.)QB64, 79 octets
QB64 est un émulateur QBasic qui ajoute quelques fonctionnalités intéressantes. Ce programme utilise one (
CLS,15
) non pris en charge par QBasic de vanille.C'est très fort. Il utilise la
PLAY
commande pour arrêter l'exécution pendant un court instant avant d'effacer l'écran. sinon, le pixel scintille et devient invisible.Télécharger QB64 , charger ce fichier, cliquez sur
Run
puisStart
.Ici c'est en action:
J'ai pris quelques astuces (
SCREEN 7
au lieu deSCREEN 13
, etPSET
au lieu dePOKE
) de la réponse de @ DLosc, donc le crédit est dû. Comme dans sa réponse, mon magenta est en fait#8B008B
, ce qui a été jugé acceptable par le PO.(La constante
9.55
est une approximation de30/π = 9.54929658551
. Est-ce assez proche?)la source
PLAY
pour un délai. J'aurais juré qu'il y avait un code de repos, mais je ne le vois pas maintenant dans le fichier d'aide. J'ai envisagé d'utiliser (une fonction de)TIMER
comme paramètre, mais je n'ai jamais essayé de voir s'il était plus court. Gloire!PSET
, donc bravo au dos :) On dirait qu'un reposn0
est plus long quec
. De plus, j'aime bien cela, c'est un peu bousculer les règles: l'OP disait que rien ne pouvait être montré dans la fenêtre, mais jamais mon programme ne pouvait pas aller fort BEEP BEEP BEEP BEEP .Java,
449443439 octetsParce que j'ai toujours eu des idées stupides. Comme au golf à Java;).
Edit: Merci pour @Ypnypn pour jouer au golf 7 octets!
Edit2: Merci pour @Franz D. d'avoir économisé 3 octets!
la source
8388736
.JFrame
, utilisezFrame
, vous permet de supprimer l'importation javax.Mathematica,
10210194 octetsCrée un cercle blanc masqué et place un point qui suit son bord de 0 à 2π. L'
DefaultDuration
option de Mathematica me permet de définir une boucle toutes les 60 secondes.Voici une version accélérée de la sortie:
EDIT: changer
Circle
pourDisk
sauvegarder 2 caractères, ajouter un signe négatift
pour le faire avancer dans le sens des aiguilles d'une montre.EDIT: Sauvegardé 7 octets en utilisant l'
~
opérateur (merci à Mauris).la source
a~f~b
place def[a,b]
, ne serait-il pasRotate
raccourci?)Point@{0,1}
et je ne pense pas que vous ayez besoin de la listePurple,Point...
.HTML, 235
290295354347octetsEnregistrez en tant que
.html
fichier et ouvrez-le dans un navigateur, sans préfixes de fournisseur, tels que Chrome ou Firefox. Ou essayez ce violon .Il s’agit d’une nouvelle version bien plus courte que ma première tentative, que j’avais écrite 5 minutes avant une réunion. La nouvelle taille de la toile est un carré basé sur la hauteur de la fenêtre. Cela fonctionne plutôt bien et ne se limite pas à une certaine hauteur définie. Je suis très précis sur les paramètres dans le défi (taille de 75% de son parent, violet et 1px). Par conséquent, j’ai besoin et je ne peux pas supprimer ou simplifier les règles suivantes:
Ungolfed
Ceci est la version sans golf avec un balisage propre:
Édite
linear
maintenant.)}}
. Merci à la brosse à dents .12%
place de12px
qui est la même valeur correspondant à la taille de l'élément parent.la source
)}}
à la fin (l'analyseur CSS mettra automatiquement fin aux blocs)TI-BASIC, 44 octets
Pour les calculatrices TI-84 + CSE / CE, qui prennent en charge certains graphiques couleur BASIC limités.
La couleur ici est le magenta ou la couleur 13 (on peut également utiliser le
MAGENTA
jeton).J'utilise
rand
plutôt que1
pour la condition de boucle infinie un court délai (~ 15 ms) entre le moment où le pixel est affiché et le moment où il est éteint à nouveau.Réglez votre calculatrice en mode radian avant d'exécuter ce programme. Je ne compte pas cela dans la taille parce que c'est l'état par défaut. Également mis
Ans
à 0 en entrant un 0 avant le programme; c'est aussi la valeur par défaut.Merci à @quartata pour avoir testé ce programme (je ne possède pas de calculatrice de couleurs).
la source
Java,
339308289287 octetsMerci à Peter Lenkefi, dont l'excellente solution m'a permis de démarrer et dont j'ai copié sans vergogne la boucle!
L'économie principale est due au passage à AWT pur et au rendu directement dans Frame - aucun besoin de JPanel (ou de Canvas). J'ai également fait du compteur une variable entière, mise à jour par simple incrément, et sauvegardé quelques octets en tournant les constantes pour pouvoir effacer un chiffre ici et là.
EDIT: Merci à Peter Lenkefi et @tobii pour leurs suggestions dans les commentaires. Battre le langage HTML serait une bonne chose - est-ce que quelqu'un sait comment mettre en pause l'exécution de manière fiable en Java sans utiliser sleep () et devoir intercepter des exceptions?
EDIT 2: JAVA BEATS HTML (actuellement à 290 octets!): D Le temps dépend maintenant de la machine, mais environ 60 secondes pour un cercle complet sur ma machine, ce qui est OK selon @Lembik. Merci encore à PeterLenkefi pour sa suggestion - ma réponse est plus de la moitié de sa :)
EDIT 3: @Ajay a suggéré de supprimer le "re" de "repaint". Deux octets de moins. Nous y arrivons :)
la source
int c,i
et en omettant leint
dansfor(int i=..
devrait économiser un peu plus.new Frame(){...}
.Haskell,
143136 octetsCeci utilise le paquet gloss :
La version la plus jolie est
la source
.0
.HTML (CSS?), 167 octets
Inspiré par la réponse de insertusernamehere
Ungolfed:
la source
HTML + CSS
n’est généralement pas considéré comme un langage de programmation, mais il appartient au PO.body
même. :)QBasic, 106
Testé sur QB64 , ce qui indique qu'il a une version Linux (même si je ne l'ai essayé que sous Windows).
SCREEN 7
définit le mode graphique.COLOR 5,15
définit le magenta foncé comme couleur de premier plan et le blanc brillant comme couleur de fond.DO ... LOOP
est une boucle infinie. Habituellement, vous le voyez commeDO WHILE ... LOOP
(ou vous pouvez leLOOP WHILE
remplacer, ou utiliserUNTIL
pour une condition annulée), mais vous pouvez également laisser la condition de côté, auquel cas elle est en boucle pour toujours.TIMER
est le nombre de secondes écoulées depuis minuit, sous forme de valeur à virgule flottante.CLS
= Écran clair.PSET
Définit un point sur une couleur, couleur de premier plan par défaut.i
commence à zéro et compte par incréments de 300 pi à chaque passage dans la boucle, complétant ainsi un cercle complet après 600 répétitions. Nous calculons pi en tant que 4 * arctan (1).t# = TIMER: WHILE TIMER < t# + 0.1: WEND
. Mais nous n’avons pas besoin de nombres à double précision (marqués d’un#
) pour une différence de 0,1 seconde, et il s’avère que laIF cond THEN [GOTO] line
syntaxe est inférieure d’un caractère à uneWHILE ... WEND
boucle.La boucle se répète 600 fois en 60 secondes, complétant ainsi un cercle complet.
Mises en garde
#8B008B
place de la couleur demandée#800080
(effacée avec l'OP).i
incrémenté jusqu'à ce qu'une révolution soit suffisamment proche de 60 secondes. (Essayez un dénominateur de 69 ou 68.)la source
SCREEN 8
au lieu de7
faire?script mIRC, 184 octets
Ceci est optimisé pour mIRC dans Wine. Lancez mIRC, appuyez
Alt + R
dessus puis collez ceci, fermez l'éditeur et lancez-le avec/g
Le timing sur le gif pourrait être éteint.
la source
R, 170 octets
Il repose sur le package
animation
. Et voici un gif pour montrer que cela fonctionne:Solution invalide enregistrant dans un gif (139 octets):
Celui-ci nécessite l'installation d'ImageMagick. Le résultat est enregistré dans un gif.
la source
Rubis avec chaussures, 159 octets
Le pixel est en réalité la pointe de l'aiguille des secondes d'une horloge analogique. Donc, celui-ci est absolument précis.
Rubis avec chaussures, 134 octets
Il s’agit d’une alternative basée sur le nombre d’images par seconde, inspirée des autres réponses. Bien que la documentation indique que le nombre de fps par défaut est de 10, des tests pratiques indiquent qu’il en est effectivement 12.
Les deux solutions prennent “La largeur du cercle doit être de 0,75 (en arrondissant de manière appropriée) la largeur de l’écran ou de la fenêtre” littéralement: calculez en fonction de la largeur de la fenêtre, de sorte que le pixel puisse parfois quitter le bas d’une fenêtre non carrée. Pas sûr de savoir comment un tel cas devrait être traité. (Utilisez un minimum de largeur et de hauteur? Marchez sur un chemin ovale?) La fenêtre commence par une taille par défaut de 600 x 500 et est redimensionnable.
la source
D,
286280 octets(392 si écrit normalement)
Ou comme je l'ai écrit à l'origine sans jouer au golf:
Dépend de simpledisplay.d et color.d situés ici: https://github.com/adamdruppe/arsd
Il suffit de télécharger ces deux fichiers individuels et de les placer dans votre même répertoire que le code ci-dessus, puis:
dmd yourfile.d simpledisplay.d color.d
de compiler et de simplement l'exécuter.Ma petite bibliothèque a été écrite pour faire des animations rapides comme celle-ci assez simple, donc cela joue bien à ses points forts! Hélas, j'aime bien les noms d'identifiant longs et je n'ai pas fourni de
Point
constructeur qui prennefloat
donc 18 octets de transtypage et .... idk une douzaine de noms en épelant mes noms de méthodes.la source
C #,
379365 octetsDépend de
System.Windows.Forms
etSystem.Drawing
à courir. La sortie est dans une fenêtre 1000x1000.la source
var
SVG, 177 octets
Balisage non valide de l'enfer au petit-déjeuner, mais il fonctionne (au moins sous Chrome). Comme un canevas HTML5, la taille par défaut d'un fichier SVG semble être de 300 x 150. C'est donc ce que cela suppose.
Edit: Oups, je suis parti accidentellement dans une durée de 6 au lieu de 60. Corrigé cela, mais aussi constaté que cela
0.5
fonctionne comme.5
, donc pas de changement dans le nombre d'octets.la source
Code machine X86 -
150146149133127 octetsVersion golfée:
'Ungolfed', version source:
Téléchargeable, version encodée base64
Copiez et collez cette adresse dans votre navigateur. Renommez le fichier obtenu
golfcrcl.com
et exécutez-le dans un environnement DOS, c’est-à-dire DosBox.la source
Mathematica
208 185139 octetsDéplace un pixel violet autour d'un tableau utilisé en tant qu'image.
Méthode 1 139 octets
Méthode 2 154 octets
Trace un pixel sur une trajectoire circulaire en 60 secondes.
Méthode 3 193 octets
Cela dessine une horloge, avec des graduations et des étiquettes en blanc, pour laquelle la trotteuse est un pixel.
la source
30
ett
.Obj-C ++ / Cocoa,
777678668657643628 octetsC'est donc probablement la pire façon de faire quoi que ce soit, mais je me suis dit que j'essaierais.
Peut être compilé sur un Mac (le mien de toute façon) avec
g++ -framework Cocoa file.mm
et exécuter à partir du terminal ( ctrl-Cpour quitter, car ce n'est pas une application).Édition: 99 octets enregistrés: correction
main()
pour fonctionner sous OS X 10.10 (la première version ne fonctionnait que sous 10.8), saute la traduction / rotation en faveur des calculs trigonométriques simples, arrêtait de se préoccuper du placement de la fenêtre et d'autres petites choses.Edit: Sauvegardé 10 autres octets: Changé juste
orderFront
pour afficher la fenêtre. Ne fait pas réellement la fenêtre avant, cependant, mais n'a pas faitorderFrontAndMakeKey
, alors ...Édition: 11 autres octets enregistrés: sauté
NSMakeRect
et trouvé un chiffre qui devait simplement disparaître.Edit: Sauvegardé 14 autres octets: n'a pas eu besoin d'attribuer l'
NSTimer
instance à quelque chose, et peut apparemment sauter l'initialisationr
à zéro.Edit: Sauvegardé 15 autres octets: Je ne peux pas arrêter. Envoyer de l'aide.
la source
Javascript / Processingjs,
175173156153152 octetsPour le lancer: visitez http://www.openprocessing.org/sketch/226733 pour le voir en action à l’aide de processing.js, ou téléchargez le traitement 2.0 de processing.org , collez le code dans l’EDI de traitement, sélectionnez le mode Javascript et regardez ça va.
la source
background(-1)
est un octet plus court quebackground(255)
Orme , 274 octets
Essayez ou modifiez-le dans votre navigateur:
Petite version
Version non-golfée
Notez que si nous éliminons les importations et dessinons le contour autour du canevas, il ne reste plus que 149 octets, mais c'est probablement de la triche!
la source
C #, 301 octets
Dépend des mesures de taille par défaut. La taille et la position peuvent être un peu différentes en fonction d'un certain nombre de facteurs. Peut ou ne peut pas scintiller horriblement; pour résoudre cela, ajoutez ce qui suit:
la source
Lua + Löve, 189 caractères
love.update()
reçoit en paramètre le temps écoulé depuis la trame précédente. Dessine dans la fenêtre par défaut 800 x 600 à des coordonnées fixes, car la fenêtre n’est quand même pas redimensionnable.la source
Python 2 + Pygame,
221198193la source
C (utilisant SDL1.2),
237233Compile et exécute en utilisant
gcc -I/usr/include/SDL snippet.c -lSDL -lm && ./a.out
la source
ActionScript 2.0, 151 octets
Malheureusement, Adobe Flash n'est pas un logiciel gratuit et Google informe que cela ne fonctionne pas sous Linux sans VM ni Wine (et même avec Wine, cela ne fonctionne que dans la plupart des cas ). Pourtant, je voulais voir comment cela se passerait bien sur cette tâche. Assez bien, il s'avère.
L'idée de base: créez un nouvel objet de clip, positionnez-le sur (200, 200), puis tracez un point 2 à l'intérieur de 200 pixels plus à droite. Désormais, le clip a une largeur de 200 pixels et une hauteur de 1 pixel. Le point de pivot est la coordonnée d'origine à laquelle nous avons commencé. Ainsi, lorsque nous modifions la
_rotation
propriété, le point se déplace en cercle autour du point (200, 200). Commodément,_rotation
est en degrés; 0,25 degré / image * 24 images / seconde * 60 secondes / minute = 360 degrés / minute.Pour exécuter à partir de zéro si vous avez Flash, créez un nouveau document Flash 1 , ouvrez le panneau Actions et collez le code ci-dessus. Aucune autre personnalisation n'est requise, en supposant que l'arrière-plan blanc, le canevas 550x400 et 24 ips soient définis par défaut. Appuyez sur Ctrl-Entrée et regardez-le aller.
Si vous ne possédez pas Flash, vous pouvez toujours afficher les résultats avec le logiciel gratuit Flash Player, qui devrait être fourni avec la plupart des navigateurs modernes. Téléchargez le fichier SWF ici . Si vous ne pouvez pas le lire, essayez également de télécharger cette page HTML et de l’ouvrir en plaçant le fichier SWF dans le même répertoire.
1 Testé sur Adobe Flash CS4 Professional, en choisissant "Fichier Flash (ActionScript 2.0)" lorsqu'on lui a demandé quel type de nouveau fichier créer.
2 En fait, il s’agit d’un petit triangle que vous verrez si vous faites un zoom avant suffisant. C’était la façon la plus amusante de dessiner un point.
la source
JavaScript avec jQuery, 205 octets
jsfiddle , extrait ci-dessous
Ce n'est peut-être pas tout à fait dans le livre. La taille par défaut d'un canevas (au moins dans Chrome) est 300x150. J'ai donc centré le cercle sur 75x75. Je pouvais le centrer sur 150x75 et faire en sorte que son rayon atteigne 113px (~ 75% de la largeur), mais ce serait parfois en dehors de la toile. J'ai donc choisi ~ 75% de la hauteur.
Mais ce n'est pas particulièrement court, alors
Afficher l'extrait de code
la source
Blitz 2D / 3D , 126 octets
Malheureusement, cette langue n'est prise en charge que sous Windows (bien qu'elle puisse s'exécuter dans Wine).
la source
Javascript ES6, 202 octets
Testé dans Firefox 41.
Comme pour les autres réponses Javascript (presque) pures, le cercle est centré à 75x75 puisque la taille par défaut des éléments de la toile est de 300x150, comme défini par les spécifications HTML.
la source
Matlab,
141136Je soumets simplement ceci pour que vous, Lembik, ayez une liste complète.
Ancienne version:
la source