Votre travail consiste à animer cette illusion de cercle . On dirait que les points tournent à l’intérieur du cercle, mais ils ne font que se déplacer en ligne droite.
Critères
- Le résultat doit être animé. La manière dont vous faites l’animation n’a aucune importance, elle peut générer une
.gif
, elle peut s’afficher dans une fenêtre, un écran de périphérique ou autre. - Il s’agit d’un concours de popularité. Vous voudrez peut-être ajouter des fonctionnalités supplémentaires à votre programme pour obtenir davantage de votes positifs, par exemple en modifiant le nombre de points.
- Le gagnant est la réponse valide la plus votée 7 jours après la dernière soumission valide.
- Les réponses qui impliqueront réellement des points se déplaçant sur des lignes droites et non un autre moyen sont plus appréciées
popularity-contest
graphical-output
animation
bruissement
la source
la source
Réponses:
Python 3.4
Utilisation du module tortue. Les tortues sont de couleurs différentes et elles font toujours face dans la même direction, de sorte qu'on peut facilement les voir se déplacer le long de lignes droites en se concentrant simplement sur l'une d'entre elles. Malgré cela, l'illusion du cercle est toujours forte.
L'illusion semble encore assez forte même avec seulement 3 ou 4 tortues:
Le nombre d'images par seconde est considérablement réduit pour tous ces exemples de fichiers GIF, mais cela ne semble pas nous permettre de nuire à l'illusion. L'exécution du code localement donne une animation plus fluide.
Pour le contraste, voici quelques uns qui tournent réellement:
... ou le font-ils?
Le code peut être exécuté avec 5 arguments optionnels: population, résolution, boucles, retournement et lignes.
population
est le nombre de tortuesresolution
est la résolution temporelle (nombre d'images d'animation par répétition)loops
détermine combien de fois les tortues reviennent sur elles-mêmes. La valeur par défaut 1 donne un cercle standard, les autres nombres impairs donnent ce nombre de boucles dans la chaîne de tortues, tandis que les nombres pairs donnent une chaîne de tortues déconnectée aux extrémités, mais avec toujours l'illusion d'un mouvement courbe.flip
si non-zéro, les tortues changent de direction pour leur voyage de retour (comme suggéré par aslum pour ne jamais reculer). Par défaut, ils conservent une direction fixe pour éviter la distraction visuelle au niveau des points d'extrémité.lines
si non-zéro affiche les lignes sur lesquelles les tortues se déplacent, par souci de cohérence avec l'exemple d'image de la question.Exemples avec
flip
ensemble, avec et sanslines
. J'ai laissé mon exemple principal ci-dessus sans basculement car je préfère ne pas avoir le saut sporadique, mais le bord du cercle est plus lisse avec l'alignement de toutes les tortues. Il est donc possible de choisir le style de son choix lors de la course. le code.Il n’est peut-être pas immédiatement évident de voir comment les images ci-dessus ont toutes été produites à partir de ce même code. En particulier, l'image la plus haute qui a une boucle externe lente et une boucle interne rapide (celle qui ressemble à un cardioïde qu'une personne est tombée accidentellement). J'ai caché l'explication de celle-ci ci-dessous au cas où quelqu'un voudrait retarder sa découverte en expérimentant / réfléchissant.
En essayant différents nombres, j'ai trouvé certaines de ces distorsions plus intéressantes que les originales plus symétriques, alors je voulais en inclure un ici ...
la source
C
Résultat:
la source
system("cls"); // xD
SVG (pas de Javascript)
Lien JSFiddle ici
la source
http://jsfiddle.net/z6vhD/13/
intervaltime
change le FPS (FPS = 1000 / intervaltime).balls
change le nombre de balles.maxstep
ajuste le nombre d'étapes dans un cycle, plus le «lissage» est grand. 64 devrait être assez grand où il semble lisse.Modélisé comme un cercle en mouvement, au lieu de déplacer les balles le long des lignes, mais l'effet visuel (devrait être?) Identique. Une partie du code est assez verbeuse, mais ce n'est pas du code golf, alors ...
la source
requestAnimationFrame
plutôt . JSFiddle modifié en utilisantrequestAnimationFrame
.Animations CSS
Une solution utilisant uniquement des animations css (voir l'animation sur JSFiddle - notez que j'ai ajouté les préfixes spécifiques au navigateur dans le violon pour qu'il puisse fonctionner dans les versions les plus récentes).
la source
-webkit-
pour Webkit et-moz-
pour Mozilla) Voici le même violon avec les préfixes mis à jour: jsfiddle.net/nBCxz/3Mathematica
Voici une soumission assez simple.
Si vous appelez,
animateCircle[32]
vous obtiendrez une animation soignée avec 32 lignes et cercles.C’est tout à fait lisse dans Mathematica, mais j’ai dû limiter un peu le nombre d’images pour le GIF.
Maintenant que se passe-t-il si vous mettez deux disques sur chaque ligne? (C'est-à-dire, ajouter
Disk[-Sin[t + phase]*line, 0.05]
à la liste dans leMap
.)Vous pouvez également les mettre hors phase à 90 ° (utiliser
Cos
au lieu de-Sin
):la source
{t, 0, 2 \[Pi]}
pour{t, 0, 2 \[Pi] - 2 \[Pi]/60, 2 \[Pi]/60}
qu'il n'y ait pas deux images identiques et changerAnimate
pourTable
. Ensuite, vous pourrez exporter le GIF.Animate
). Je vais essayer d'utiliser àTable
nouveau si.Graphique à secteurs VBScript + VBA + Excel
Cela fera un peu pleurer votre processeur, mais il est joli et je pense que cela fonctionne conformément aux spécifications. J'ai utilisé la réponse de @ Fabricio comme guide pour implémenter l'algorithme de mouvement de cercle.
EDIT: fait quelques ajustements pour améliorer la vitesse de rendu.
Le code:
la source
Excel, 161 octets
A2 (période) détermine le temps (secondes) pour un «tour» complet.
Chaque cellule dans les lignes est une condition de base relative à la valeur de la ligne correspondante. Par exemple, K2 est:
Et la cellule centrale (K9) est:
Forcé l’animation en maintenant «delete» sur une cellule aléatoire pour déclencher une actualisation constante.
Je sais que c'est un sujet ancien, mais une activité récente l'a amené au sommet et cela semblait attrayant pour une raison quelconque. Listener pcg long time, premier appelant. Sois gentil.
la source
Juste pour s'amuser avec PSTricks.
la source
Fortran
Chaque image est créée en tant que fichier GIF individuel à l'aide du module Fortran GIF à l' adresse suivante : http://fortranwiki.org/fortran/show/writegif.
Ensuite, je triche un peu en utilisant ImageMagick pour fusionner les gifs individuels en un gif animé.
UPDATE: Définissez new = .true. pour obtenir ce qui suit:
la source
Version C64 obligatoire .
Copiez et collez dans votre émulateur préféré:
la source
Une version javascript compacte, changeant les paramètres par défaut pour quelque chose de différent
http://jsfiddle.net/yZ3DP/1/
HTML:
JavaScript:
la source
bw=10
). Veuillez modifier votre réponse pour afficher votre code. Oh, et tant que vous y êtes, il y a un bug que vous devriez corriger: remplaceztime+i*0.39*0.29
partime+i*Math.PI/num
dans les calculs trigonométriques afin que les coordonnées soient calculées correctement pour toute valeur denum
. (PS Mis à jour JSFiddle ici . Et bienvenue à codegolf.stackexchange.com)Ma prise avec Elm . Je suis un débutant et j'accepterai volontiers les RP pour améliorer cette solution ( GitHub ):
Notez que cette soumission déplace vraiment des points sur des lignes droites:
la source
Second Life LSL
début de l'image alpha de la tortue (clic droit ci-dessous pour enregistrer l'image)
fin de l'image alpha de la tortue (clic droit ci-dessus pour enregistrer l'image)
construction de l'objet: création d'
une taille de cylindre de racine <1, 1, 0.01> tranche 0.49, 0.51, couleur < 0, 0, 0>
faites la description de ce cylindre "8,1,1,1" sans les guillemets (très important)
faites un cylindre, nommez-le "cyl", couleur <0.25, 0.25, 0.25> alpha 0.5
dupliquer le cyl 48 fois
créer une boîte, nommez-la "sphère", couleur <1, 1, 1> transparence 100 sauf pour la transparence supérieure 0
placez la texture de votre tortue sur la face 0 de la boîte, la tortue doit faire face à + x
dupliquer la boîte 48 fois
sélectionnez toutes les boîtes et les cylindres, assurez-vous de sélectionner le cylindre racine en dernier,lien (contrôle L)
mettez ces 2 scripts à la racine:
la source