Récemment, je souhaite créer une page Web et mettre certaines des DÉMO que j'ai créées pendant le processus d'apprentissage du HTML5 pour créer une collection. Cependant, ce serait trop moche de simplement créer une page Web et d'organiser toutes les DÉMO une seule. par un. Je pensais juste que, puisque j'ai appris Canvas, jouons avec le navigateur et réalisons une petite animation d'ouverture.
Après avoir réfléchi un moment à l'effet de l'animation d'ouverture, j'ai décidé d'utiliser des particules parce que je pense que les particules sont plus amusantes. Je me souviens encore que le premier article de blog technique que j'ai écrit concernait la particule de texte et d'images : Particuler du texte et des images À cette époque, je ne faisais que du mouvement linéaire et j'ajoutais un petit effet 3D. La formule de l'exercice est simple. Je voulais donc juste rendre cette animation d'ouverture plus dynamique.
Allez d'abord à la DÉMO : http://2.axescanvas.sinaapp.com/demoHome/index.html
L'effet est-il plus dynamique qu'un mouvement linéaire ? Et c’est très simple, n’oubliez pas le titre de cet article, une petite formule, un grand plaisir. Pour obtenir un tel effet, tout ce dont nous avons besoin est notre lycée. . Ou les connaissances en physique au lycée, les formules de mouvement accéléré et de mouvement décéléré. C'est donc vraiment la formule des petites gouttes. L'affiche originale aime jouer avec des choses sympas. Bien qu'il ne les utilise pas au travail, le plaisir est vraiment fascinant. De plus, cela peut également renforcer vos capacités de réflexion en programmation.
Sans plus attendre, venons-en au sujet. Laissez-moi vous expliquer brièvement le principe~~~
Le code de base du mouvement des particules est exactement le suivant :
x et y sont les positions des particules, vx est la vitesse horizontale des particules et vy est la vitesse verticale des particules. Peu importe que vous connaissiez nexttox ou autre, ce ne sont que des variables temporaires. . tox et toy sont les emplacements de destination des particules.
Tout d’abord, donnez à toutes les particules une destination, qui sera discutée ci-dessous. C'est-à-dire que vous voulez que la particule atteigne l'endroit, puis définissez une variable za comme accélération. Si vous voulez connaître la valeur spécifique, vous obtiendrez les paramètres approximatifs grâce à d'autres tests, je la règle sur 20. c'est à peu près la même chose. za est l'accélération de la ligne entre la particule et la destination. Par conséquent, nous pouvons calculer l'accélération horizontale et l'accélération verticale de la particule à travers la position de la particule et la position de la destination grâce à des fonctions trigonométriques simples.
Maintenant que nous avons parlé du principe du mouvement, parlons de la mise en œuvre spécifique de l'animation ci-dessus : initialisation de l'animation, dessinez les mots ou les images souhaités sur une toile hors écran, puis obtenez les pixels du hors-écran. canevas d'écran via la méthode getImageData. Utilisez ensuite une boucle pour trouver la zone dessinée dans le canevas hors écran. Étant donné que la valeur des données dans imageData est un tableau rgba, nous jugeons que la dernière valeur, c'est-à-dire que la transparence est supérieure à 128, signifie que la zone a été. dessiné. Obtenez ensuite la valeur xy de la zone Afin d'éviter qu'un trop grand nombre d'objets particules ne provoquent un décalage de page, nous limitons le nombre de particules, la valeur x et la valeur y augmentent de 2 à chaque fois, réduisant ainsi le nombre de pixels. particules.
通过循环获取到粒子的位置xy值后,把位置赋给粒子,成为粒子的目的地。然后动画开始,就可以做出文字图片粒子化的效果了。