JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

//PARAMETERS

//You can try messing with these but take care when increasing LEVELS and CHILDREN values ; a too big amount of generated elements will result in some serious slowdown and can eventually mess with the CSS transitions' display.

var LEVELS = 6;

var CHILDREN = 3;

var SHRINK_FACTOR = 1.7;

//RECURSIVELY GENERATE NESTED DIVS

function appendFractals(elem) {

if (typeof elem.fractal_level == "undefined") {

elem.fractal_level = LEVELS;

} else {

if (elem.fractal_level <= 0) {

return false;

}

}

elem.fractal_level--;

var e_W = elem.offsetWidth;

var e_H = elem.offsetHeight;

var children = 0;

while (children < CHILDREN) {

var ch = document.createElement('div');

ch.style.width = (e_W / SHRINK_FACTOR) + "px";

ch.style.height = (e_H / SHRINK_FACTOR) + "px";

ch.style.marginLeft = "-" + ((e_W / SHRINK_FACTOR) / 2) + "px";

ch.style.marginTop = "-" + ((e_H / SHRINK_FACTOR) / 2) + "px";

if (Math.random() >= 0.5) {

if (Math.random() >= 0.5) {

var chL = 0;

} else {

var chL = e_W;

}

var chT = Math.round(Math.random() * e_H);

} else {

if (Math.random() >= 0.5) {

var chT = 0;

} else {

var chT = e_H;

}

var chL = Math.round(Math.random() * e_W);

}

ch.style.left = (e_W / 2) + "px";

ch.style.top = (e_H / 2) + "px";

ch.InitialLeft = (e_W / 2) + "px";

ch.InitialTop = (e_H / 2) + "px";

ch.FractalLeft = chL + "px";

ch.FractalTop = chT + "px";

elem.appendChild(ch);

ch.fractal_level = elem.fractal_level;

appendFractals(ch);

children++;

}

setTimeout(function() {

moveFractals(document.getElementById('main'))

}, 1);

}

//UNFOLD

function moveFractals(elem) {

var all_F = elem.getElementsByTagName('div');

for (var i = 0; i < all_F.length; i++) {

all_F[i].style.top = all_F[i].FractalTop;

all_F[i].style.left = all_F[i].FractalLeft;

}

}

//RE-FOLD

function revertFractals(elem) {

var all_F = elem.getElementsByTagName('div');

for (var i = 0; i < all_F.length; i++) {

all_F[i].style.top = all_F[i].InitialTop;

all_F[i].style.left = all_F[i].InitialLeft;

}

}

function Fractals(elem) {

if (typeof elem.fractal_level != "undefined") {

revertFractals(elem);

var delay = 500;

} else {

var delay = 0;

}

setTimeout(function() {

elem.fractal_level = LEVELS;

elem.innerHTML = "";

appendFractals(elem);

}, delay);

}

document.onLoad = setTimeout(function() {

Fractals(document.getElementById('main'))

}, 500);

C语言 随机分形,随机方块生成的分形图案相关推荐

  1. 论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings

    论文笔记整理:谭亦鸣,东南大学博士生,研究方向为知识图谱问答. 来源:Knowledge Based System 链接:https://www.sciencedirect.com/science/a ...

  2. 自回避随机行走问题 c语言,醉汉随机行走/随机漫步问题(Random Walk Randomized Algorithm Python)...

    世界上有些问题看似是随机的(stochastic),没有规律可循,但很可能是人类还未发现和掌握这类事件的规律,所以说它们是随机发生的. 随机漫步(Random  Walk)是一种解决随机问题的方法,它 ...

  3. 随机森林回归预测r语言_使用随机森林(R语言)做回归

    引言 随机森林( random forest) 是一种基于分类树( classification tree) 的算法,它可以用于分类和回归,本文在这里以广西地区1990-2014共25年的GDP数据作 ...

  4. c语言作业小学生测试题,C语言实现小学生随机出题测试计分

    C语言实现小学生随机出题测试计分 发布时间:2020-10-12 02:13:39 来源:脚本之家 阅读:103 作者:iCodeBugs 本文实例为大家分享了C语言实现随机出题测试计分的具体代码,供 ...

  5. C语言文件的随机读写

    C语言文件的随机读写 文件顺序读写,即读写文件只能从头开始,依次读写各个数据.但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写.这种读写方式称为随机读 ...

  6. 定义一个方法,使用随机的字母+数字生成一个6位数的密码

    @Testpublic void test10() {//调用PassWord方法打印输出System.out.println(PassWord());}//定义一个方法,使用随机的字母+数字生成一个 ...

  7. C语言的文件随机访问fseek()和ftell()函数

    C语言的文件随机访问fseek()和ftell()函数 我们要讨论3个问题:fseek()和ftell()函数的工作原理.如何使用二进制流.如何让程序可移植. fseek()与ftell()的工作原理 ...

  8. 分形在山地生成中的应用[1]---中点位移法

      分形在山地生成中的应用[1]---中点位移法             EmilMatthew (EmilMatthew@126.com)       06/07/18 [  类别  ]算法实现   ...

  9. 如何理解“伪随机”以及“随机种子”

    "真随机"与"伪随机" 真随机:就是我们传统意义上理解的"随机",随机事件如今天是否下雨,抛硬币的正反面,家门口的十字路口今天发生车祸等等. ...

  10. 随机森林随机回归预测_使用随机森林预测幸福

    随机森林随机回归预测 Why do we try to predict happiness? Being able to predict happiness means that we are abl ...

最新文章

  1. C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid运算符
  2. 六十六,完成SpringBoot项目中的员工增删查改功能
  3. 看完这一系列,彻底搞懂 Gradle
  4. libvirt命令行文档
  5. linux存储格式化和挂载
  6. 【编程珠玑】第四章 编写正确的程序
  7. linux发布微软消息队列,消息队列RabbitMQ入门与5种模式详解
  8. VMware下Hadoop 2.4.1完全分布式集群平台安装与设置
  9. Java 读取PDF中的表格
  10. 模拟电子技术基础-什么是放大?
  11. idr寄存器、_STM32 GPIO寄存器 IDR ODR BSRR BRR
  12. 初学者好 |如何从头开始创建一个图像识别的AI应用[ctrl:c+v,你就完成了]
  13. android 7zip,7zip手机版
  14. 波动方程,达朗贝尔解和亥姆霍兹方程
  15. Windows11图片密码的设置方法(用喜欢的图片作为开机密码)
  16. 数字音乐赛道拐点下,讯飞音乐的AI突围法
  17. alter table add constraint 用法
  18. 如何用程序员的方式,营造七夕氛围感?
  19. 拜托,面试请不要再问我 Spring Cloud Alibaba 底层原理
  20. 由百度基础面面试想到的和总结的

热门文章

  1. tomcat6.0启动报错
  2. javascript 弹出窗口中是否显示地址栏
  3. lr之RTE脚本(telnet方式访问水木清华)
  4. Python创建空DataFrame及添加行数据
  5. 异常错误 - MySQL导入时错误
  6. ip,netstat命令案例
  7. 使用Outlook Connector插件之后 qq发送过来的邮件为乱码
  8. Unity IOC简单认知
  9. 一键关闭 openwrt路由器的led灯
  10. 广州有这么一个无聊的人