`
anllin
  • 浏览: 1301 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

3D玫瑰源码

阅读更多
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玫瑰

    如何打造仅1k大小的纯JS脚本3D玫瑰 源码,可直接运行

    HTML5+Three.js实现的3D白玫瑰图形变换动画效果源码.zip

    在这个3D玫瑰动画中,开发者可能定义了一个场景,然后添加了3D模型——白玫瑰。这个3D模型可能是由多个几何体(如球体、平面等)组合而成,每个几何体都可能有不同的材质和纹理,以模拟玫瑰的花瓣和茎叶。 接下来,...

    桌面开满玫瑰花程序源代码

    标签中的“玫瑰花”意味着这个程序的图形界面与玫瑰花相关,可能采用了玫瑰花的图像、动画或者3D模型,以尽可能地模拟真实花朵的形态和动态。而“情人节”则暗示了其特定的使用场景,即在情人节当天使用,为节日增添...

    自己制作999朵玫瑰花送给女朋友

    在IT领域,这可能意味着使用编程语言创建视觉效果,或者使用3D建模软件设计并打印出999个玫瑰花模型。此外,如果“花”是虚拟的,那么可能涉及到游戏开发、动画制作或AR(增强现实)技术,让用户在特定的环境中看到...

    屏幕软件9999朵玫瑰

    在技术层面上,“9999朵玫瑰”可能采用了先进的图形渲染技术,如OpenGL或Unity3D,以确保花朵的细腻纹理、动态光照以及流畅的动画效果。这些花朵可能通过精心设计的算法逐一展开,模拟自然生长的过程,为用户带来...

    一千朵会动的玫瑰花-哄女孩高兴的工具

    标签“一千朵会动的玫瑰花”再次确认了主题,这可能是一个具有浪漫元素的数字内容,可能包括一系列连续显示的玫瑰图片,形成动态效果,或者是一个3D动画,用户可以通过滑动、点击等方式与之互动。为了实现这种效果,...

    3DJS玫瑰花

    3D 纯js构造的玫瑰花,直接上传的页面源码。

    酷炫H5源码(爱心表白,黑客帝国,梦幻魔方等风格)

    将这些酷炫H5源码应用于博客背景或追爱玫瑰,不仅可以提升网站的视觉吸引力,还能增加用户的互动体验。不过,为了确保兼容性和性能,开发者还需要关注浏览器的兼容性问题,合理优化代码,避免不必要的性能开销。 ...

    3D rose written by JavaScript

    标题“3D玫瑰由JavaScript绘制”揭示了一个使用JavaScript编程语言创建的三维玫瑰图形项目。JavaScript是一种广泛用于网页和网络应用的脚本语言,它能够实时更新网页内容,为用户提供动态交互体验。在这个特定的示例...

    3D玫瑰

    NULL 博文链接:https://anllin.iteye.com/blog/1684463

    vc++ 应用源码包_1

    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...

    vc++ 应用源码包_2

    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...

    vc++ 应用源码包_3

    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...

    vc++ 应用源码包_5

    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...

    vc++ 应用源码包_6

    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...

    matlab玫瑰花的源码-perception-libelas:Libelas(LibraryforEfficientLarge-scaleS

    【标题】"matlab玫瑰花的源码-perception-libelas:Libelas(LibraryforEfficientLarge-scaleS"指的是一个基于MATLAB实现的项目,该项目利用了名为Libelas的库,该库专注于大规模场景下的激光扫描匹配。Libelas是...

    vc++ 开发实例源码包

    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 如题。 FreeBird2011最初版(模仿...

    实用的HTML浪漫表白代码(附源码)+背景音乐,可用于520,情人节,生日,求爱表白等场景,可直接使用

    3D旋转可以使用`transform: rotateX()`和`rotateY()`属性实现,而火工作效可能通过CSS的`animation`和`keyframes`规则来制作,或者利用JavaScript库如Three.js来实现更为复杂的3D动画。 `love-center-name-2-yanhua...

    Views3D汽车按钮源代码

    一旦具备了这些基础知识,你就可以逐步分析源码,探索如何构建3D模型,实现交互逻辑,以及优化渲染效果。 总结来说,“Views3D汽车按钮源代码”是一个关于3D界面开发的实例,通过C#编程语言和Vs2019环境,结合模块...

    最新vpb源码

    总的来说,"最新vpb源码"提供了学习和研究虚拟环境构建技术的机会,包括3D图形编程、物理模拟、数据管理等多个方面的知识。对于想要深入理解游戏引擎或虚拟现实技术的人来说,这是一个宝贵的学习资源。

Global site tag (gtag.js) - Google Analytics