3D玫瑰花(JavaScript神奇之处)

html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>3D(Darren)</title>
</head>

</html>
<html>
<head>

<title></title>
<meta charset="utf-8" />
</head>

<body>
<canvas id="c" height="500" width="500">
</canvas>
<script >

var b = document.body;
var c = document.getElementsByTagName("canvas")[0];
var a = c.getContext("2d");
document.body.clientWidth;

</script>
<script>

// 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 = .5 / (a + .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, .4 - a * .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]
}
}
setInterval
(‘for(i=0;i<1e4;i++)if(s=p(R(),R(),i%46/.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)}‘, 0)

// end of submission //

</script>

</body>
</html>

出自:http://www.romancortes.com/blog/1k-rose/

时间: 2024-10-03 23:35:22

3D玫瑰花(JavaScript神奇之处)的相关文章

php isset( $test ) 的神奇之处。

很久一段时间没更新博客了,由于近段时间一直在忙 挑战杯 的项目,所以没怎样把一些总结放上来.这次,总结下 php 的一个 函数 : boolean isset($test), 返回值:boolean类型,传入参数不为空,返回true,反之,false 参数:常用一个 $ 变量 该函数和empty 差不多,用于判断变量是否已经被定义,之前的我,在一些项目代码中看见过,但是并没有觉得它的功能很起眼,现在的我觉得,这个函数真的是 项目开发必备. 说下我遇到的问题和使用 isset 解决的过程吧,我在我

JavaScript 神奇的参数

JS函数的参数,和其他语言区别非常大.它不在乎你传过来多少个参数,也不在乎传过来的参数是什么类型.即使你定义的函数只接受两个参数,你调用这个函数的时候可以传递一个.三个甚至不传参数.这是因为JavaScript中的参数在内部是用一个数组来表示的.函数接收到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话).在函数体内我们可以通过arguments对象来访问这个数组来获得传递给函数的每一个参数.可以看下面的例子: function sayHi(name,message) { alert

python的for循环的神奇之处

python的for循环太神奇了: 你可以编写这样的语句: for i in range(10) : j= i**2 print(j) 你也可以编写这样的语句: with open('/path/to/file','r') as f: for line in f.readlines(): print(line.strip()) 这个时候line是什么类型?.readline按什么顺序来执行? -----这里是分隔符------- #读word文件import win32comimport win

超盟金服聚合码神奇之处,如何做到一码多扫的?

移动支付领域作为行业3大巨头的支付宝.微信.银联拥有数亿级别的用户数量,占据9成市场规模.当今,当我们出去购物买单买单时不难发现,原来摆在收银台上的多种二维码如今慢慢变为只有一个了,不管我们是任何一种支付方式,都可以扫码付款.这其实就是通常所说聚合支付二维码.从一柜多码到一柜一码以往,商家的收银台都会摆放多个二维码,对账时需要逐一对每个收款二维码的收款金额.退款金额.交易笔数等数据进行统计,繁琐易出错.面对一系列繁琐问题,而商家使用有调聚合支付二维码后,商家即可又有自己独立账号,可一键查询每天的

【转】什么是JavaScript

转自mdn学习网站-什么是JavaScript 什么是JavaScript? 欢迎来到 MDN JavaScript 初学者的课程! 在第一篇文章中,我们将会站在一定的高度来俯看 JavaScript,回答一些像"它是什么?"和"它能做什么?"的问题 .并确保你熟悉 JavaScript 的用途. 一个高水平的定义 JavaScript 是允许你在网页中实现复杂事情的一门编程语言 -- 每次当你浏览网页时不只是显示静态信息-- 显示即时更新的内容, 或者交互式的地图

JavaScript函数,作用域以及闭包

JavaScript函数,作用域以及闭包 1. 函数 (1). 函数定义:函数使用function关键字定义,它可以用在函数定义表达式或者函数声明定义. a. 函数的两种定义方式: * function functionName() {} * var functionName = function(){} b. 两种函数定义不同之处 1). 声明提前问题 函数声明语句   :声明与函数体一起提前 函数定义表达式 :声明提前,但是函数体不会提前 请看下面图示:绿色线上面实在js初始加载的时候,查看

【转】深入学习JavaScript: apply call方法 详解(转)

Js apply方法详解 原文:http://blog.csdn.net/myhahaxiao/article/details/6952321 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和cal

利用 JavaScript 快速切换正体中文和简体中文

一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰"繁体中文").传统做法是在服务端完成的,即通过某些控件或者过滤器转换文本语言.这里笔者介绍一种简单可行的方法,不是在服务端而是利用前端的 JavaScript 就可以切换正体中文. 大概六年前我还专门写过这议题的博文,这篇也是奠基在那篇文章(旧文也是参考了一高手代码)之上,<对 JavaScript 繁简字切换的小改进>.时过境迁,有必要把代码进行更新一下--以前的太稚

javascript大神修炼记(4)——循环

读者朋友们大家好,今天,我们继续接着前面的内容讲,前们我们已经讲了条件分支,今天我们就讲循环,顾名思义就是,重复执行相同的操作,正常循环是受程序控制的,不正常的情况,就会出现死循环,那就是我们的代码中出现bug,那样,我们还要学会调式bug,等我们先把基础知识讲完了之后,我还会专门用篇幅来讲解浏览器里面的调试,那种程序就会在我们掌控之中,这才是我们想要结果. 循环包括的结构体有 for , while , do--while,for循环有两种形式的存在,一种是数字变量变化所引起的循环,另一种就是