- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最近研究魔方的玩法,就突然想用HMTL5写一个魔方的模型,由于魔方是一个3D的立方体,这次就试着用HTML5写了一个简单的3D模型。下面是测试链接和预览画面。/demo/Rubik/index.html制作流程首先你需要下载html5开源库件lufylegend-1.4.0/lufy_legend/article/details/魔方分为6个面,每个面由9个小矩形组成,现在我把每个小矩形当做一个类封装起来,因为现在建立的是一个3D魔方,所以要画出每个小矩形,需要知道小矩形的4个定点,而这4个定点会根据空间的旋转角度而变换,所以为了计算出这4个定点坐标,需要知道魔方绕x轴和z轴旋转的角度。所以,建立矩形类如下[javascript]?view plain?copyfunction?Rect(pointA,pointB,pointC,pointD,angleX,angleZ,color){???base(this,LSprite,[]);???this.pointZ=[(pointA[0]+pointB[0]+pointC[0]+pointD[0])/4,(pointA[1]+pointB[1]+pointC[1]+pointD[1])/4,(pointA[2]+pointB[2]+pointC[2]+pointD[2])/4];???this.z?=?this.pointZ[2];???this.pointA=pointA,this.pointB=pointB,this.pointC=pointC,this.pointD=pointD,this.angleX=angleX,this.angleZ=angleZ,this.color=color;??}???Rtotype.setAngle?=?function(a,b){???this.angleX?=?a;???this.angleZ?=?b;???this.z=this.getPoint(this.pointZ)[2];??};??pointA,pointB,pointC,pointD是小矩形的四个顶点,angleX,angleZ分别是x轴和z轴旋转的角度,color是小矩形的颜色。魔方分为6个面,先看一下最前面的一面,如果以立方体的中心作为3D坐标系的中心,那么9个小矩形的各个定点所对应的坐标如下图所示所以,前面这个面的9个小矩形可以由下面的代码来建立[javascript]?view plain?copyfor(var?x=0;x3;x++){???for(var?y=0;y3;y++){???z?=?3;???var?rect?=?new?Rect([-3*step?+?x*2*step,-3*step?+?y*2*step,-3*step?+?z*2*step],[-step?+?x*2*step,-3*step?+?y*2*step,-3*step?+?z*2*step],[-step?+?x*2*step,-step?+?y*2*step,-3*step?+?z*2*step],[-3*step?+?x*2*step,-step?+?y*2*step,-3*step?+?z*2*step],0,0,#FF0000);???backLayer.addChild(rect);???}??}??其中backLayer是一个LSprite类,step是半个小矩形的长,同样的道理,可以也得到其他5个面。6个面都建立了,在绘制这6个面之前,首先要根据旋转的角度来计算各个定点的坐标,看下面的图根据上面的图,用下面的公式即可得到变换后的定点坐标[javascript]?view plain?copyRtotype.getPoint?=?function(p){???var?u2,v2,w2,u=p[0],v=p[1],w=p[2];???u2?=?u?*?Math.cos(this.angleX)?-?v?*?Math.sin(this.angleX);???v2?=?u?*?Math.sin(this.angleX)?+?v?*?Math.cos(this.angleX);???w2?=?w;???u?=?u2;?v?=?v2;?w?=?w2;???u2?=?u;???v2?=?v?*?Math.cos(this.angleZ)?-?w?*?Math.sin(this.angleZ);???w2?=?v?*?Math.sin(this.angleZ)?+?w?*?Math.cos(this.angleZ);???u?=?u2;?v?=?v2;?w?=?w2;???return?[u2,v2,w2];??};??最后根据小矩形的四个定点坐标,来绘制这个矩形,[javascript
您可能关注的文档
- T梁张拉压浆封锚技术交底卡.doc
- TSMOracle11gR2数据库异机完全恢复手册.docx
- unit8LectureNotes.doc
- QTP学习与实践经验总结.doc
- unix系统下的回车.doc
- U型钢支护措施.doc
- vf编程试题集.doc
- VBA回归分析.doc
- Parasoft-C++Test操作手册.doc
- UG90制图模板替换方法.docx
- 幼儿园全民国家安全教育日PPT.ppt
- 文明礼仪伴我行主题班会课.ppt
- 4.2 《心有一团火,温暖众人心》课件(共26张PPT) 2024-2025学年统编版高中语文必修上册.pptx
- 大模型平民化开启“AI+医疗”新纪元.pptx
- 2《以工匠精神雕琢时代品质》 课件(共28张PPT)2024-2025学年统编版高中语文必修上册.pptx
- 3《鸿门宴》 课件 (共52张PPT)2024-2025学年统编版高中语文必修下册.pptx
- unit 2能力阅读写作拔高练-学九级英语全一册单元模块满分必刷题人教版.pdf
- 9.3 《声声慢(寻寻觅觅)》课件 (共25张PPT)2024-2025学年统编版高中语文必修上册.ppt
- “4·23世界读书日”主题教育班会-阅读启心智,知识筑梦想 课件(共27张PPT).pptx
- 4EAT 变速箱维修手册.pdf
最近下载
- DG_TJ08-40-2010:地基处理技术规范.pdf VIP
- 2024年四川省宜宾市江安区化学中考一诊试卷.doc VIP
- 2024年中考语文总复习专题06:修辞手法(附答案解析).docx
- QCT 468_汽车散热器最新标准规范.pdf
- 《基本分析与技术分析相结合的A股投资策略案例报告》6200字.doc
- 2 TNC 640 HSCI加工中心和铣车复合加工机床数控系统.pdf VIP
- 2024年四川省宜宾市江安中学中考物理一诊试卷 .docx VIP
- 节能与新能源汽车技术路线图2.0_完整下载版.pdf
- 一般现在时(第三人称单数形式_)及练习.doc VIP
- 医院医保办个人年度述职报告与医院医保办个人总结汇编.doc VIP
文档评论(0)