canvas还是很不错的,只要你能用好它。以下是格式化的源码,贴出来,有兴趣的一起学习一下。
<!doctype html>
<html>
<head>
<title>JS1k, 1k demo submission [1022]</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="canvas">IE不支持哦</canvas>
<script type="text/javascript">
var b = document.body;
var c = document.getElementById('canvas');
var a = c.getContext('2d');
document.body.clientWidth;
// fix bug in webkit: http://qfox.nl/weblog/218
// start of submission //
with (m = Math) {
C = cos, S = sin, P = pow, R = random;
}
c.width = c.height = f = 500;
h = -250;
function p(a, b, c) {
if (c > 60) {
return [ S(a * 7) * (13 + 5 / (.2 + P(b * 4, 4))) - S(b) * 50,
b * f + 50,
625 + C(a * 7) * (13 + 5 / (.2 + P(b * 4, 4))) + b * 400,
a * 1 - b / 2,
a ];
}
A = a * 2 - 1;
B = b * 2 - 1;
if (A * A + B * B < 1) {
if (c > 37) {
n = (j = c & 1) ? 6 : 4;
o = 0.5 / (a + 0.01) + C(b * 125) * 3 - a * 300;
w = b * h;
return [
o * C(n) + w * S(n) + j * 610 - 390,
o * S(n) - w * C(n) + 550 - j * 350,
1180 + C(B + A) * 99 - j * 300,
0.4 - a * 0.1 + P(1 - B * B, -h * 6) * .15 - a * b * .4
+ C(a + b) / 5
+ P(C((o * (a + 1) + (B > 0 ? w : -w)) / 25), 30)
* .1 * (1 - B * B),
o / 1e3 + .7 - o * w * 3e-6 ];
}
if (c > 32) {
c = c * 1.16 - .15;
o = a * 45 - 20;
w = b * b * h;
z = o * S(c) + w * C(c) + 620;
return [ o * C(c) - w * S(c),
28 + C(B * .5) * 99 - b * b * b * 60 - z / 2 - h,
z,
(b * b * .3 + P((1 - (A * A)), 7) * .15 + .3) * b,
b * .7 ];
}
o = A * (2 - b) * (80 - c * 2);
w = 99 - C(A) * 120 - C(b) * (-h - c * 4.9) + C(P(1 - b, 7)) * 50 + c
* 2;
z = o * S(c) + w * C(c) + 700;
return [ o * C(c) - w * S(c),
B * 99 - C(P(b, 7)) * 50 - c / 3 - z / 1.35 + 450,
z,
(1 - b / 1.2) * .9 + a * .1,
P((1 - b), 20) / 4 + .05 ]
}
}
function draw3dRose() {
for (i = 0; i < 1e4; i++) {
if (s = p(R(), R(), i % 2546 / .74)) {
z = s[2];
x = ~~(s[0] * f / z - h);
y = ~~(s[1] * f / z - h);
if (!m[q = y * f + x] | m[q] > z) {
m[q] = z;
a.fillStyle = "rgb(" + ~(s[3] * h) + "," + ~(s[4] * h) + ","
+ ~(s[3] * s[3] * -80) + ")";
a.fillRect(x, y, 1, 1);
}
}
}
}
setInterval(draw3dRose, 0);
// end of submission //
</script>
</body>
</html>
实际效果可以查看附件。
分享到:
相关推荐
如何打造仅1k大小的纯JS脚本3D玫瑰 源码,可直接运行
在这个3D玫瑰动画中,开发者可能定义了一个场景,然后添加了3D模型——白玫瑰。这个3D模型可能是由多个几何体(如球体、平面等)组合而成,每个几何体都可能有不同的材质和纹理,以模拟玫瑰的花瓣和茎叶。 接下来,...
标签中的“玫瑰花”意味着这个程序的图形界面与玫瑰花相关,可能采用了玫瑰花的图像、动画或者3D模型,以尽可能地模拟真实花朵的形态和动态。而“情人节”则暗示了其特定的使用场景,即在情人节当天使用,为节日增添...
在IT领域,这可能意味着使用编程语言创建视觉效果,或者使用3D建模软件设计并打印出999个玫瑰花模型。此外,如果“花”是虚拟的,那么可能涉及到游戏开发、动画制作或AR(增强现实)技术,让用户在特定的环境中看到...
在技术层面上,“9999朵玫瑰”可能采用了先进的图形渲染技术,如OpenGL或Unity3D,以确保花朵的细腻纹理、动态光照以及流畅的动画效果。这些花朵可能通过精心设计的算法逐一展开,模拟自然生长的过程,为用户带来...
标签“一千朵会动的玫瑰花”再次确认了主题,这可能是一个具有浪漫元素的数字内容,可能包括一系列连续显示的玫瑰图片,形成动态效果,或者是一个3D动画,用户可以通过滑动、点击等方式与之互动。为了实现这种效果,...
3D 纯js构造的玫瑰花,直接上传的页面源码。
将这些酷炫H5源码应用于博客背景或追爱玫瑰,不仅可以提升网站的视觉吸引力,还能增加用户的互动体验。不过,为了确保兼容性和性能,开发者还需要关注浏览器的兼容性问题,合理优化代码,避免不必要的性能开销。 ...
标题“3D玫瑰由JavaScript绘制”揭示了一个使用JavaScript编程语言创建的三维玫瑰图形项目。JavaScript是一种广泛用于网页和网络应用的脚本语言,它能够实时更新网页内容,为用户提供动态交互体验。在这个特定的示例...
NULL 博文链接:https://anllin.iteye.com/blog/1684463
3D旋转可以使用`transform: rotateX()`和`rotateY()`属性实现,而火工作效可能通过CSS的`animation`和`keyframes`规则来制作,或者利用JavaScript库如Three.js来实现更为复杂的3D动画。 `love-center-name-2-yanhua...
精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
【标题】"matlab玫瑰花的源码-perception-libelas:Libelas(LibraryforEfficientLarge-scaleS"指的是一个基于MATLAB实现的项目,该项目利用了名为Libelas的库,该库专注于大规模场景下的激光扫描匹配。Libelas是...
精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 如题。 FreeBird2011最初版(模仿...
一旦具备了这些基础知识,你就可以逐步分析源码,探索如何构建3D模型,实现交互逻辑,以及优化渲染效果。 总结来说,“Views3D汽车按钮源代码”是一个关于3D界面开发的实例,通过C#编程语言和Vs2019环境,结合模块...
总的来说,"最新vpb源码"提供了学习和研究虚拟环境构建技术的机会,包括3D图形编程、物理模拟、数据管理等多个方面的知识。对于想要深入理解游戏引擎或虚拟现实技术的人来说,这是一个宝贵的学习资源。