情人节献礼:1kb的玫瑰生成脚本

情人节快到了,这里送大家一枝玫瑰,无论是有对象还是没对象的朋友们,情人节快乐~

下面的玫瑰绘制用到了HTML 5的canvas,所以你的浏览器需要支持HTML 5。个人还是比较推荐chrome,这个效果在Firefox下也会稍卡。

玫瑰花的实现代码如下:豪享博娱乐城

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

	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]
		}
	}
	var draw = 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);

这里用了多个不同的形状图来组成这朵代码玫瑰。共使用了31个形状:24个花瓣,4个萼片,2个叶子和1根花茎,其中每一个形状图都用代码进行描绘。表面采样方法是创建三维图形非常著名的、最古老的方法之一,但这种把蒙特卡罗、z-buffer加入到表面采样中的方法并不常见。对于现实生活场景的制作,这也许算不上很有创意,但它简易的代码实现和很小的体积仍令人满意。

时间: 2024-11-12 15:52:35

情人节献礼:1kb的玫瑰生成脚本的相关文章

LoadRunner 11中Record无法自动生成脚本——解决办法

[问题描述] 安装loadRunner 11, 使用IE为默认浏览器,打开一个页面进行脚本录制:录制完成后,无法生成脚本. [问题现象] 控制台输出如下: ****** Start Log Message ******Web Recorder version : 11.0.0.8859 Recording Mode: HTML-based scriptCorrelation is enabled system wideNot recording headersNot excluding cont

数据库生成脚本,架构+数据

简介 通过数据生成数据库架构.数据或架构和数据脚本,方便对数据库和数据的备份和迁移 步骤 1. 数据库右键-->任务-->生成脚本 2. 下一步-->选择需要备份的表 3. 下一步-->高级,选择你需要备份的类型 4. 选择合适的路径和名称,下一步即可 5.生成的脚本如下

loadrunner11录制报 NOT PROXIED!错误,无法生成脚本

使用loadrunner11,IE9录制完脚本,报错: [Net An. Error    (1dec:282c)] Request Connection: Remote Server @ 210.52.215.177:80   (Service=)  NOT PROXIED! (REASON: Unable to connect to remote server: rc = -1 , le = 0),且生成脚本为空. 解决方案: 录制选项-->网络-->端口映射-->套接字级别数据和W

SQL Server镜像自动生成脚本

SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 192.168.1.1 WSQL01192.168.1.2 WSQL02192.168.1.3 WWEB03 --★Do部分都是需要填写的 -- ============================================= -- Author: <桦仔> -- Blog: <ht

ORA-02266错误的批量生成脚本解决方案

原文:ORA-02266错误的批量生成脚本解决方案 ORA-02266: unique/primary keys in table referenced by enabled foreign keys这篇博客是很早之前总结的一篇文章,最近导数时使用TRUNCATE清理主表数据又遇到了这个错误,发现还有其它解决方案: a) 禁用与主表相关的外键约束 b) TRUNCATE TABLE c) 启用那些外键约束. 在实际操作中,发现使用上面的流程操作虽然正确,但是要写很多脚本,有些主表中的字段可能是多

Postfix邮箱(十五):全局地址本自动生成脚本

说明: 很久没弄邮箱了,老早就有想法写个脚本自动生成全局地址本,每次添加一个用户还要SSH连到服务器加个地址本,麻烦死了,想必大家都有这样的情况:这周有点空就研究了下python语言,写了这么个脚本出来,共享出来一起学习. 1.安装     一般情况下系统已默认安装,我的操作系统centos6.5装的是python2.4.3 yum install -y MySQL-python 2.脚本 cd /var/www/excuite/extmail vi globabook.py #!/usr/bi

自动生成脚本头部格式并调用VIM工具

在我们写脚本的时候,开始总要按照脚本书写规范来定义脚本头部格式,久而久之是不是会觉得麻烦效率低下呢,这里就介绍一个好的思路给大家. 1 首先我们在VIM里先复制个头部格式的内容,这里就抄袭一个二师兄的格式,来修改成自己的信息即可. 1 #!/bin/bash 2 # ----------------+---------------------------------------+ 3 # * Author : YongmouChen 4 # * Revision : 2.0 5 # * Emai

中文识别数据集生成脚本

概述 该脚本能够将用户指定的字符输出为不同字体的图像文件,用于训练文字识别的机器学习模型或用于其他文字识别OCR项目 详细 代码下载:http://www.demodashi.com/demo/13952.html 一.开发背景 随着近几年来计算机算力的不断提升,机器学习也迎来了爆发式的发展,图像识别作为机器学习最典型也是最主要的应用之一,目前应用前景火热. 机器学习最重要的一步就是获取数据集,没有一个坚实的数据集做支撑是无法训练出好用的模型的.因此,本文实现了一个脚本,能够生成任意数量,任意字

IDEA连接数据库生成实体类方法与定制Groovy生成脚本

导语: 如今已2019年, 有许许多多的插件或者编辑器都支持根据数据表自动生成数据实体类了, 比如IDEA, 各种MyBatis的代码生成工具, 等等. 本篇介绍一下如何使用IDEA的groovy脚本文件生成带JPA注解的实体类 参考链接: Intellij IDEA 通过数据库表生成带注解的实体类详细步骤-悲凉的秋风 一, 使用IDEA连接数据库 需注意: 正式版IDEA才有此功能, 社区版木有 演示图片使用的IDEA版本为2018.3, 不同版本界面可能有细小差别 创建新的数据连接 (1)如