<html>
<head>
<title>Dragon Heart</title>
</head>
<body>
<canvas id="canvas" width="1000" height="1000">
</canvas>
<script src="http://files.cnblogs.com/iamzhanglei/JscexMin.js" type="text/javascript"></script>
<script>
function fillCircle(ctx, r) {
ctx.beginPath();
ctx.moveTo(r, 0);
ctx.fillStyle = 'rgb(245,50,50)';
ctx.arc(0, 0, r, 0, Math.PI * 2, true);
ctx.fill();
}
function branch(ctx, r, d, t, a) {
ctx.save();
ctx.rotate(t * a);
ctx.translate(0, -r * (1 + d));
wing(ctx, r * d, a);
ctx.restore();
}
function feather(ctx, r) {
if (r < 3) return;
var d = 0.85;
ctx.rotate(-0.03 * Math.PI);
ctx.translate(0, -r * (1 + d));
fillCircle(ctx, r);
feather(ctx, r * d);
}
function wing(ctx, r, a) {
if (r < 2.9) return;
fillCircle(ctx, r);
branch(ctx, r, 0.9561, 0.03 * Math.PI, a);
ctx.save();
ctx.rotate(0.55 * Math.PI);
feather(ctx, 0.8 * r);
ctx.restore();
}
function tail(ctx, s, a) {
if (s < 0.5) return;
var d = 0.98; // decay
fillCircle(ctx, s);
ctx.rotate(-0.15 * a);
ctx.translate(0, s * (1 + d));
tail(ctx, s * d, a);
}
function head(ctx) {
fillCircle(ctx, 22);
// mouth
ctx.save();
ctx.translate(-15, -3);
ctx.beginPath();
ctx.fillStyle = "white";
ctx.arc(0, 0, 10, 0, Math.PI * 2, true);
ctx.fill();
ctx.restore();
// eye
ctx.translate(9, -4);
ctx.beginPath();
ctx.fillStyle = "black";
ctx.arc(0, 0, 5, 0, Math.PI * 2, true);
ctx.fill();
// horn
ctx.translate(6, -8);
ctx.rotate(0.6 * Math.PI);
wing(ctx, 5.5, 1.8);
}
function neck(ctx, s) {
if (s < 10) { head(ctx); return; }
var d = 0.85;
fillCircle(ctx, s);
ctx.save();
ctx.rotate(-Math.PI / 2);
ctx.translate(0, s);
fillCircle(ctx, s / 2);
ctx.restore();
ctx.rotate(-0.15);
ctx.translate(0, -s * (1 + d));
neck(ctx, s * d);
}
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
function draw() {
ctx.translate(430, 230);
ctx.scale(0.4, 0.4);
executeAsync().start();
}
var i = 1;
var executeAsync = eval(Jscex.compile("async", function () {
while (true) {
$await(Jscex.Async.sleep(1));
while (true) {
$await(Jscex.Async.sleep(35));
i++;
ctx.fillStyle = "white";
ctx.fillRect(-1500, -1500, 4000, 4000);
ctx.save();
ctx.translate(0, Math.cos(i * 0.1) * 40);
var a = Math.sin(i * 0.1);
// right wing
ctx.save();
ctx.rotate(Math.PI * 0.4);
wing(ctx, 18, a);
ctx.restore();
// left wing
ctx.save();
ctx.scale(-1, 1);
ctx.rotate(Math.PI * 0.4);
wing(ctx, 18, a);
ctx.restore();
// tail
ctx.save();
tail(ctx, 20, Math.sin(i * 0.05));
ctx.restore();
// head
neck(ctx, 22);
ctx.restore();
}
}
}));
draw();
</script>
</body>
</html>
分享到:
相关推荐
一个优秀的HTML5模板需要考虑以下方面: 1. **响应式设计**:适应不同设备和屏幕尺寸,提供一致的用户体验。 2. **易用性**:遵循WCAG(Web Content Accessibility Guidelines)标准,确保残障人士也能方便使用。 ...
适用于建筑艺术领域的个人或企业,无论是在桌面电脑还是移动设备上,都能提供一致且吸引人的用户体验,且利用了现代Web技术如HTML5来实现丰富的功能和优秀的视觉效果。使用者可以通过自定义这些模板,轻松创建自己的...
在这个“程序员给女朋友用HTML5制作的精美3D相册”项目中,我们可以看到HTML5在交互性和视觉效果上的优秀表现。 首先,让我们来了解一下HTML5的核心特性。HTML5引入了新的标签,如、、和等,这些标签有助于结构化...
总结,本项目“HTML5+JavaScript+CSS 商城(模拟联想)购物系统”充分展示了这三大技术在实际开发中的应用,为开发者提供了一个学习和实践的优秀案例。通过这个系统,我们可以深入了解如何利用这些技术构建一个功能...
艺术设计HTML网站模板是网页设计领域中的一种常见资源,它为艺术家、设计师或者创意机构提供了一个展示作品和...通过合理利用这些模板,设计师不仅可以提高工作效率,还能创造出符合艺术审美和用户体验需求的优秀网站。
本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。 本书给出了38位大师级程序员在...
这款名为“白色简洁艺术展示网页模板”的资源是一个用于创建艺术类网站的HTML模板,它集成了现代化的设计风格和优秀的用户体验。HTML网站模板是网站开发的基础,它由一系列HTML、CSS和JavaScript文件组成,用于定义...
然而,值得注意的是,虽然Firefox在很多方面表现优秀,但不同的浏览器对某些CSS3或HTML5特性的支持程度可能会有所不同,因此在实际开发中,需要进行跨浏览器的测试和兼容性调整。 总的来说,CSS3和HTML5为网页设计...
该压缩包文件包含的是一款...总的来说,"宽屏大图艺术单页跳转响应式html5模板"是一个综合运用了现代网页技术的优秀模板,它结合了艺术设计和功能性,为企业或个人创建具有吸引力且响应式的网站提供了一个高效的起点。
这个压缩包文件包含了一个以绿色艺术卡通为主题的手机页面模板,适用于HTML手机和电脑网站的构建。这个模板是基于H5技术开发的,具有自适应和响应式的特点,能够根据不同的设备屏幕尺寸进行优化显示,确保在手机和...
【标题】"05_艺术展览小程序.zip"指的是一个压缩包文件,该文件包含了与艺术展览相关的小程序的完整前端代码资源。这个小程序是专为微信平台设计的,旨在为用户提供一个在线浏览和参与艺术展览的便捷途径。 【描述...
"122唯美简约设计艺术交互动态全套网站源代码"正是这样一套融合了美学、交互与技术的优秀资源。它以其独特的设计风格和卓越的用户体验,为网页设计师提供了丰富的灵感和实用的开发工具。 首先,我们来看"唯美"这一...
UI插画设计师html5模板是一款专为UI设计师打造的响应式模板,它集合了艺术与技术的精髓,帮助设计师快速创建吸引人的、适应不同设备屏幕的用户界面。 UI设计(User Interface Design)是指对软件、网站或移动应用的...
《UI插画设计师html5前端模板PX7:构建现代网页设计的艺术与技术》 UI插画设计师html5前端模板PX7是一款专为UI插画设计师精心打造的前端模板,它结合了HTML5、Bootstrap框架以及一系列美观的页面设计,旨在为用户...
这本书的附录和源码提供了丰富的实践案例和深入的代码示例,帮助读者更好地理解和掌握JavaScript在DOM编程中的应用。 附录通常包括对书中概念的补充解释、技术参考或实用工具,而源码则展示了实际应用中的编程技巧...
插画在网页设计中的应用,为网页增添了艺术感和个性化。矩阵排列HTML网页模板巧妙地将插画元素融入其中,使得网页不仅具备信息传递的功能,还成为了一种视觉享受。设计师们通过独特的插画设计,使网站内容更富表现力...
总的来说,这个压缩包提供的是一套完整的艺术摄影公司网站解决方案,结合了HTML5、CSS和JavaScript的优势,以响应式设计实现了跨平台兼容性和优秀的用户体验。用户可以下载并自定义这套模板,以满足他们特定的艺术...
HTML5摄影主题模板"Spirit"是一个专为摄影师和视觉艺术家设计的网站模板,它充分利用了HTML5、CSS3以及现代网页设计技术,旨在提供一个既美观又功能丰富的展示平台。这款模板以其独特的设计和交互性,能够吸引访问者...
5. UI/UX 设计原则:优秀的代码源会体现出良好的用户界面(UI)和用户体验(UX)设计。这可能包括清晰的导航、一致的界面元素、易于理解的交互反馈以及优化的加载速度。 6. 布局模式:网格系统、Flexbox或Grid布局...
一款优秀的HTML5模板能够极大地提升网站的视觉效果和用户体验。今天,我们将深入探讨“水墨背景绿色森林HTML5模板5620”,这款模板以其独特的艺术风格和强大的功能,成为众多设计师和开发者的选择。 首先,我们要...