节日就快到来了,给你的Ta一个惊喜吧~

今天给大家分享一个浪漫小技巧,利用Python制作一个立体会动的心动小爱心
成千上百个爱心汇成一个大爱心,从里到外形成一个立体状,给人视觉上的冲击感!浪漫极了↓
微信扫码添加,备注 “心动爱心” 领取腾讯文档-在线文档 https://docs.qq.com/doc/DU25Ld0xKVk5iSmNr
https://docs.qq.com/doc/DU25Ld0xKVk5iSmNr
上才艺:
 </style>
   <body>
     <!-- 樱花 -->
     <div id="jsi-cherry-container" class="container">
       <audio autoplay="autopaly">
         <source src="renxi.mp3" type="audio/mp3" />
       </audio>
       <img class="img" src="./123.png" alt="" />
       <!-- 爱心 -->
       <canvas id="pinkboard" class="container"> </canvas>
     </div>
部分代码
   (function () {
       var b = 0;
       var c = ["ms", "moz", "webkit", "o"];
       for (var a = 0; a < c.length && !window.requestAnimationFrame; ++a) {
         window.requestAnimationFrame = window[c[a] + "RequestAnimationFrame"];
         window.cancelAnimationFrame =
           window[c[a] + "CancelAnimationFrame"] ||
           window[c[a] + "CancelRequestAnimationFrame"];
       }
       if (!window.requestAnimationFrame) {
         window.requestAnimationFrame = function (h, e) {
           var d = new Date().getTime();
           var f = Math.max(0, 16 - (d - b));
           var g = window.setTimeout(function () {
             h(d + f);
           }, f);
           b = d + f;
           return g;
         };
       }
       if (!window.cancelAnimationFrame) {
         window.cancelAnimationFrame = function (d) {
           clearTimeout(d);
         };
       }
     })();
    /*
      *Point class
      */
     var Point = (function () {
       function Point(x, y) {
         this.x = typeof x !== "undefined" ? x : 0;
         this.y = typeof y !== "undefined" ? y : 0;
       }
       Point.prototype.clone = function () {
         return new Point(this.x, this.y);
       };
       Point.prototype.length = function (length) {
         if (typeof length == "undefined")
           return Math.sqrt(this.x * this.x + this.y * this.y);
         this.normalize();
         this.x *= length;
         this.y *= length;
         return this;
       };
       Point.prototype.normalize = function () {
         var length = this.length();
         this.x /= length;
         this.y /= length;
         return this;
       };
       return Point;
     })();
    /*
      * Particle class
      */
     var Particle = (function () {
       function Particle() {
         this.position = new Point();
         this.velocity = new Point();
         this.acceleration = new Point();
         this.age = 0;
       }
       Particle.prototype.initialize = function (x, y, dx, dy) {
         this.position.x = x;
         this.position.y = y;
         this.velocity.x = dx;
         this.velocity.y = dy;
         this.acceleration.x = dx * settings.particles.effect;
         this.acceleration.y = dy * settings.particles.effect;
         this.age = 0;
       };
       Particle.prototype.update = function (deltaTime) {
         this.position.x += this.velocity.x * deltaTime;
         this.position.y += this.velocity.y * deltaTime;
         this.velocity.x += this.acceleration.x * deltaTime;
         this.velocity.y += this.acceleration.y * deltaTime;
         this.age += deltaTime;
       };
       Particle.prototype.draw = function (context, image) {
         function ease(t) {
           return --t * t * t + 1;
         }
         var size = image.width * ease(this.age / settings.particles.duration);
         context.globalAlpha = 1 - this.age / settings.particles.duration;
         context.drawImage(
           image,
           this.position.x - size / 2,
           this.position.y - size / 2,
           size,
           size
         );
       };
       return Particle;
     })();
运行结果:


















![[附源码]计算机毕业设计JAVAjsp心理测评系统](https://img-blog.csdnimg.cn/cb033dfc706b44f6954173a3b53694e2.png)

