• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5 3D衣服摇摆动画特效_html5教程技巧

HTML5 3D衣服摇摆动画特效_html5教程技巧

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,3D,衣服摇摆等相关知识,匿名希望在学习及工作中可以帮助到您
这又是一款基于HTML5 Canvas的3D动画杰作,它是一个可以随风飘动的3D衣服摇摆动画特效,非常逼真。当我们将鼠标滑过衣服时,衣服将会出现摇摆的动画,点击鼠标时,衣服将会更加剧烈地摆动。

在线演示 源码下载

HTML代码

  1. <div style="width:500px;margin:10px auto">
  2. <canvas id="cv" width="480" height="300">canvas>
  3. <p>"3D on 2D Canvas" demop>
  4. <p>move cursor to pan / click to swingp>
  5. div>

P3D库JS代码,主要用来处理3D效果的

  1. window.P3D = {
  2. texture: null,
  3. g: null
  4. };
  5. P3D.clear = function(f, w, h) {
  6. var g = this.g;
  7. g.beginPath();
  8. g.fillStyle = f;
  9. g.fillRect(0, 0, w, h);
  10. }
  11. P3D.num_cmp = function(a,b){return a-b;}
  12. P3D.drawTriangle = function(poss, uvs, shade_clr) {
  13. var w = this.texture.width;
  14. var h = this.texture.height;
  15. var g = this.g;
  16. var vAd = [ poss[1].x - poss[0].x , poss[1].y - poss[0].y ];
  17. var vBd = [ poss[2].x - poss[0].x , poss[2].y - poss[0].y ];
  18. var vA = [ uvs[1].u - uvs[0].u , uvs[1].v - uvs[0].v ];
  19. var vB = [ uvs[2].u - uvs[0].u , uvs[2].v - uvs[0].v ];
  20. vA[0] *= w;
  21. vA[1] *= h;
  22. vB[0] *= w;
  23. vB[1] *= h;
  24. var m = new M22();
  25. m._11 = vA[0];
  26. m._12 = vA[1];
  27. m._21 = vB[0];
  28. m._22 = vB[1];
  29. var im = m.getInvert();
  30. if (!im) return false;
  31. var a = im._11 * vAd[0] + im._12 * vBd[0];
  32. var b = im._21 * vAd[0] + im._22 * vBd[0];
  33. var c = im._11 * vAd[1] + im._12 * vBd[1];
  34. var d = im._21 * vAd[1] + im._22 * vBd[1];
  35. var wu = uvs[0].u * w;
  36. var hv = uvs[0].v * h;
  37. var du = wu * a + hv * b;
  38. var dv = wu * c + hv * d;
  39. g.save();
  40. g.beginPath();
  41. g.moveTo(poss[0].x, poss[0].y);
  42. g.lineTo(poss[1].x, poss[1].y);
  43. g.lineTo(poss[2].x, poss[2].y);
  44. g.clip();
  45. g.transform(a, c, b, d, poss[0].x - du, poss[0].y - dv);
  46. // bounds
  47. var bx = [wu, wu+vA[0], wu+vB[0]];
  48. var by = [hv, hv+vA[1], hv+vB[1]];
  49. bx.sort(P3D.num_cmp);
  50. by.sort(P3D.num_cmp);
  51. var bw = bx[2] - bx[0];
  52. var bh = by[2] - by[0];
  53. if ((bx[0]+bw) <= (w-1)) bw++;
  54. if ((by[0]+bh) <= (h-1)) bh++;
  55. if (bx[0] >= 1) {bx[0]--; bw++;}
  56. if (by[0] >= 1) {by[0]--; bh++;}
  57. g.drawIma

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03html5指南(4)-使用Geolocation的详解
  • 2017-08-06HTML5新增的Css选择器、伪类介绍
  • 2018-12-03HTML5 实现访问本地文件的方法
  • 2018-12-03HTML5-Web存储如何使用?
  • 2018-12-03具体介绍HTML5表单新增属性
  • 2018-12-03HTML5 拖放(Drag 和 Drop)详解与实例
  • 2018-12-03使用分层画布来优化HTML5渲染的教程_html5教程技巧
  • 2017-08-06实例讲解HTML5的meta标签的一些应用
  • 2018-12-03Android自定义环形LoadingView效果
  • 2017-08-06详解HTML5中的<aside>元素与<article>元素

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 如何用v-for给src属性赋值
    • Html5 服务端推送 Server-Sent Event
    • Tkinter教程之Canvas篇(2)
    • 想在猪八戒接做网页,要怎样系统的学习 ?
    • HTML5实践- 使用css3丰富图片样式的示例代码
    • 如何使用 CSS3 实现 TeX 一般强大的行内元素排版?
    • HTML5离线存储原理及实现的代码实例
    • HTML5+CSS3
    • HTML5-XMLHttpRequest Level 2概述详解
    • HTML5学习笔记简明版(3):新元素之hgroup,header,footer

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有