


Alors, avons-nous un gagnant pour Code Challenge # 1?
Il y a une semaine, nous avons lancé Quick Code Challenge # 1 et il est temps d'annoncer le gagnant! Ce défi est assez difficile. Bien qu'il n'y ait pas beaucoup d'entrées, la qualité des œuvres gagnantes est incontestable.
Tout d'abord, passons en revue certaines des différentes approches du défi.
ma tentative
En tant que fabricant de règles stimulantes, je vais d'abord essayer.
( bien sûr, je ne peux pas me remettre un prix ... au moins je ne pense pas que je peux ... non ?! )
J'ai essayé les solutions CSS et SVG - mes forces - et j'ai décidé de ne pas utiliser de scripts. Puisqu'il n'y a pas de vraies fonctions aléatoires dans CSS et SVG, l'astuce consiste à rendre les boucles d'animation régulières plus aléatoires qu'elles ne le sont réellement. Ceci est ma solution.
Voir Pure CSS "Apparence organique" Animation ECG par Alex (@alexmwalker) sur Codepen
Vous pouvez afficher le code comme vous le souhaitez, mais la principale préoccupation est:
- L'animation en ligne EKG n'utilise qu'un seul SVG externe et deux boucles d'animation distinctes.
- Une animation CSS (voyage) boucle le gradient vert de gauche à droite. Le masque superposé façonne la ligne ECG.
- J'ai créé 6 "battements cardiaques" ECG "uniques sur le graphique SVG et je les ai définis sous forme de clés de sprites. J'ai basculé ces images clés pour le rendre aléatoire (j'ai ajouté un petit nombre en bas pour rendre la commutation de l'image clé plus évidente).
- La deuxième animation traite chaque "rythme cardiaque" comme un sprite séparé et passe à un nouveau sprite à chaque fois qu'il passe - mais cela est chronométré pour se produire uniquement dans la partie sombre de la boucle, lorsqu'elle n'est pas visible.
- Bien sûr, puisque chaque "unité de battement de cœur" utilise exactement la même animation CSS, nous nous attendons généralement à ce qu'ils affichent tous les mêmes images clés. L'astuce pour les rendre différentes est d'utiliser
animation-delay
pour compenser leur heure de début. Si nous utilisons un retard négatif (par exempleanimation-delay: -9s
), nous pouvons passer à n'importe quel point intermédiaire dans la boucle d'animation immédiatement. Il s'agit d'une astuce de performances très utile. - Toutes les animations sont contrôlées par une seule variable SASS en haut de la fenêtre CSS -
$animation-time: 5s;
. La modification de ce numéro modifiera le grand numéro de lecture et la vitesse ECG. - Il fonctionne pour Chrome et n'a aucun test approfondi, mais devrait fonctionner n'importe où.
La méthode CSS pure a certaines limites, mais je suis assez satisfait de l'effet global. J'ai besoin de JS pour améliorer les éléments que je n'aime pas.
troisième place: Paulob
Nous sommes très chanceux d'avoir Paul en tant que contributeur à long terme, mentor et consultant des utilisateurs de SitePoint depuis plus de dix ans (peut-être près de vingt ans?). Dans ce cas, il a sacrifié ses précieuses vacances au soleil pour créer une merveilleuse solution SVG.
Voir la machine «Ping» de Paul O’Brien (@paulobrien) sur Codepen
Paul a dit:
C'est juste un SVG pour les graphiques et un gradient linéaire animé pour fournir l'effet de mouvement. Si j'ai le temps, je vais le dessiner correctement et le rendre réactif, pas seulement répéter le même SVG à chaque fois pour le rendre un peu aléatoire.
Maintenant, vous devez retourner à la piscine :)
Paul, nous vous rendons hommage!
(De plus, nous trouverons des moyens de vous envoyer des t-shirts, des sous-verres ou d'autres produits périphériques.)
Trial Premier prix: Nickwatton
Bien qu'il n'y ait pas beaucoup d'entrées dans ce premier défi de code, il n'y a absolument aucun problème avec la qualité des deux meilleurs travaux. En fait, nous avons pensé que les deux meilleures œuvres méritaient la récompense, nous avons donc décidé de leur donner un bonus de carte-cadeau Amazon de 200 $ chacun.
Le travail de Nickwatton est exactement ce que je pense.
Voir Nick Watton (@ 2mogs) sur Codepen
Comme l'explique Nick, sa solution:
Utilisez des systèmes de particules parce que je les aime!
En outre, vous pouvez obtenir un effet de piste très bon marché en remplissant le contexte de dessin avec du noir presque transparent, ce qui crée une piste fanée pour mes lignes "ping".
RAF fait que l'animation entière fonctionne en douceur et l'animation de battement de cœur est contrôlée par récursif
setTimeout()
. J'utilisesetTimeout()
pour conduire un effet non-trame par trame, ce qui signifie également que je peux le déclencher à des intervalles légèrement aléatoires pour une sensation organique. La méthode Heartbeat () contrôle et randomise légèrement le taux de battements cardiaques, qui est visible sur les lignes de cœur et d'impulsion.
Les méthodes JS et Canvas de Nick offrent une flexibilité que d'autres méthodes sont difficiles à égaler. Je ne peux pas imaginer comment imiter ces effets de particules en utilisant une approche basée sur SVG.
La vitesse d'animation légèrement randomisée est également relativement facile. C'est difficile à forger sans JS, mais cela ajoute à la crédibilité de cette animation.
Premier prix de l'essai: Davidomarmach
David a soumis son travail à la date limite, nous sommes heureux de l'avoir fait. Je dois admettre que cela m'a fait sourire.
Afficher la machine "ping" par David Omar Flores Chávez (@davidomarf) sur Codepen
Tout d'abord, David a commencé à étudier sérieusement comment les vraies machines ECG produisent des sorties et ont incorporé ces connaissances dans son animation. Il a également augmenté la fluctuation de la pression artérielle, de la température, des lectures de saturation en oxygène et même du nombre d'hémoglobine. Cette chose semble très réelle.
Mais David a également ajouté deux éléments de facteur X Killer.
- Audio: la machine classique "bip ... bip ... bip ..." ajoute beaucoup de drame lorsque la fréquence cardiaque augmente.
- Interactivité: En plus d'un "aléatoire passif" automatique, David permet également aux utilisateurs de contrôler leur fréquence cardiaque à travers la position du curseur. Se déplacer à l'extrême gauche mettra votre patient à dormir - se déplacer vers la droite permettra à votre patient d'injecter de l'adrénaline dans le cœur.
Le contrôle limité de la vitesse ECG rend cette unité probablement vraiment utile dans les scènes de film / télévision.
Comme la solution de Nick, l'unité ECG est écrite sur la toile en JavaScript, mais David utilise la bibliothèque P5.JS. Je n'ai pas utilisé P5 auparavant, mais avec des modules pour le dessin, l'animation et l'audio, cela semble être une excellente base pour construire un projet comme celui-ci.
Dans l'ensemble, c'est une contribution très impressionnante.
Merci et félicitations à David, Nick et Paul. Nous vous contacterons bientôt.
Next Challenge: Code Challenge # 2: CSS Battle
Pour notre prochain défi, nous travaillerons avec des amis sur cssbattles.dev pour parrainer le quatrième tour de bataille. Au cours de trois semaines, il y aura 3 récompenses en espèces et 20 abonnements en prime SitePoint à rivaliser. Les détails seront annoncés dans mon prochain post.
Code Challenge 1 FAQ (FAQ)
Quel est le but de Code Challenge 1?
Code Challenge 1 est conçu pour tester et améliorer vos compétences de codage. Il s'agit d'une plate-forme compétitive où les codeurs du monde entier participent et utilisent leurs connaissances de codage pour résoudre un problème donné. L'objectif principal de ce défi est d'encourager l'apprentissage, le partage et l'amélioration des compétences de codage dans un environnement compétitif.
Quels langages de programmation puis-je utiliser dans Code Challenge 1?
Vous pouvez utiliser n'importe quel langage de programmation dans Code Challenge 1. Le défi ne concerne pas la langue que vous utilisez, mais sur la logique et l'efficacité du code. Que vous soyez bon en Python, Java, C ou toute autre langue, vous êtes invités à participer.
Comment déterminer le gagnant du Code Challenge 1?
Le gagnant du Code Challenge 1 est déterminé en fonction de l'efficacité et de la précision de leur code. Le code sera testé contre plusieurs cas de test, et le code qui passe tous les cas de test dans un temps minimum sera déclaré gagnant.
Les débutants peuvent-ils participer au Code Challenge 1?
bien sûr! Le Code Challenge 1 est ouvert aux codeurs de tous les niveaux de compétence. Même si vous êtes un débutant, vous êtes encouragé à participer. C'est une excellente occasion de vous apprendre, de vous améliorer et de se mettre au défi.
Et si j'ai des difficultés à résoudre les problèmes dans le défi du code 1?
Si vous avez des difficultés à résoudre des problèmes, ne vous inquiétez pas. Vous pouvez toujours demander de l'aide à la communauté. Il existe de nombreux codeurs expérimentés prêts à vous aider et à vous guider.
Comment se préparer pour le défi du code 1?
La meilleure façon de se préparer au Code Challenge 1 est de pratiquer le codage régulièrement. Vous pouvez résoudre les problèmes de diverses plateformes en ligne, lire des livres de codage et participer à d'autres défis de codage. Plus vous vous entraînez, mieux vous ferez.
Si je ne sais pas comment coder, puis-je participer au Code Challenge 1?
Bien que sachant comment coder soit une condition préalable à la participation au Code Challenge 1, il n'est jamais trop tard pour apprendre. Il y a beaucoup de ressources en ligne à apprendre le codage à partir de zéro. Une fois que vous avez les bases, vous pouvez commencer à participer au défi de codage.
Quels sont les avantages de participer au Code Challenge 1?
Il y a de nombreux avantages à participer au Code Challenge 1. Cela peut vous aider à améliorer vos compétences de codage, à vous offrir une plate-forme compétitive pour tester les compétences et à vous offrir des opportunités d'apprentissage. Il peut également vous aider à vous connecter avec la communauté du codage du monde entier.
À quelle fréquence le défi du code 1 est-il détenu?
La fréquence du défi du code 1 peut varier. Il peut s'agir d'un événement hebdomadaire, mensuel ou même annuel. Il est préférable de consulter le site officiel ou de vous abonner à leur newsletter pour les dernières mises à jour.
y a-t-il une récompense pour gagner le défi du code 1?
Les récompenses pour la victoire du Code Challenge 1 peuvent varier. Certains défis offrent des récompenses en espèces, tandis que d'autres offrent une reconnaissance, des certificats ou des opportunités de participer à des projets réels. Les détails des récompenses sont généralement mentionnés dans la description du défi.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Ce programme pilote, une collaboration entre le CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal et ACTUTIE, rationalise ARM64 CI / CD pour les projets GitHub CNCF. L'initiative répond aux problèmes de sécurité et aux performances LIM

Ce tutoriel vous guide dans la création d'un pipeline de traitement d'image sans serveur à l'aide de services AWS. Nous allons créer un frontend Next.js déployé sur un cluster ECS Fargate, en interagissant avec une passerelle API, des fonctions lambda, des seaux S3 et DynamoDB. Ème

Restez informé des dernières tendances technologiques avec ces meilleurs bulletins de développeur! Cette liste organisée offre quelque chose pour tout le monde, des amateurs d'IA aux développeurs assaisonnés du backend et du frontend. Choisissez vos favoris et gagnez du temps à la recherche de rel

Puzzles CI / CD et solutions pour les logiciels open source dans l'architecture ARM64 Le déploiement de logiciels open source sur l'architecture ARM64 nécessite un environnement CI / CD puissant. Cependant, il existe une différence entre les niveaux de soutien des architectures de processeur ARM64 et traditionnelles x86, qui sont souvent désavantagées. Les développeurs de composants d'infrastructure pour plusieurs architectures ont certaines attentes pour leur environnement de travail: Cohérence: les outils et méthodes utilisés sur les plateformes sont cohérents, évitant la nécessité de modifier le processus de développement en raison de l'adoption de plateformes moins populaires. Performances: La plate-forme et le mécanisme de support ont de bonnes performances pour garantir que les scénarios de déploiement ne sont pas affectés par une vitesse insuffisante lors de la prise en charge de plusieurs plates-formes. Couverture de test: efficacité, conformité et

Le développement de logiciels de télécommunications personnalisés est sans aucun doute un investissement considérable. Cependant, à long terme, vous pouvez réaliser qu'un tel projet peut être plus rentable car il peut augmenter votre productivité comme toute solution prête à l'emploi sur le marché. Comprendre les avantages les plus importants de la construction d'un système de télécommunications personnalisé. Obtenez les fonctionnalités exactes dont vous avez besoin Il y a deux problèmes potentiels avec le logiciel de télécommunications standard que vous pouvez acheter. Certaines manquent de fonctionnalités utiles qui peuvent améliorer considérablement votre productivité. Parfois, vous pouvez les améliorer avec une certaine intégration externe, mais cela ne suffit pas toujours pour les rendre excellents. D'autres logiciels ont trop de fonctions et sont trop compliqués à utiliser. Vous n'en utilisez probablement pas (jamais!). Un grand nombre de fonctionnalités ajoute généralement au prix. En fonction de vos besoins
