美文网首页
网页JS随机圆形平铺

网页JS随机圆形平铺

作者: 赤色要塞满了 | 来源:发表于2021-11-01 14:57 被阅读0次

需要生成大量的大小不一的圆,屏幕到画布,且不覆盖。
直接随机播种+判断覆盖就行。
先看HTML

<canvas id="canvas" width="800" height="800"
style="border:1px solid #000000;">
</canvas>

再看JS

var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");

var circles = [], min = 5, max = 10;
circles.push({x:400, y:400, r:100})
draw();

function draw() {
    var c = createCircle();
  var counter = 0;
  while(!isValid(c)) {
    c.x = Math.random() * 800;
    c.y = Math.random() * 800;
    counter++;
    if(counter > 10000) {
        return;
    }
  }
  while(isValid(c)) {
    c.r++;
  }
  circles.push(c);
  drawCircle(c);
  requestAnimationFrame(draw);
}

function isValid(c) {
    if(c.r>max) {
    return false;
  }
  for(var i=0; i<circles.length; i++) {
    var c2 = circles[i],
      dx = c2.x-c.x
      dy = c2.y-c.y
      dist = Math.sqrt(dx*dx+dy*dy);
    if(dist<c2.r + c.r + 2){
      return false
    }
  }
  return true;
}

function createCircle() {
    return {
    x: Math.random() * 800,
    y: Math.random() * 800,
    r: min
  }
}

function drawCircle(c) {
    if(c.r > 10) {
    return;
  }
    context.beginPath();
  context.arc(c.x, c.y, c.r, 0, Math.PI * 2);
  context.fill();
}

效果还行,后面会变慢。


image.png

参考管子v=MvZAjkD8-wk。

相关文章

  • 网页JS随机圆形平铺

    需要生成大量的大小不一的圆,屏幕到画布,且不覆盖。直接随机播种+判断覆盖就行。先看HTML: 再看JS: 效果还行...

  • 网页生成宋词, 每个程序汪都可以成为骚气小猪猪

    JS生成宋词, 纯网页版. 直接预览下载地址Github地址 使用Js随机生成宋词。词频统计directory里面...

  • python 网络爬虫第三章-爬取维基百科(2)

    3.1.2 随机打开网页中的文章链接 目标:随机漫步从一个网页随机跳转到该网页中的链接,如此循环。示例代码如下: ...

  • js基础

    1.网页 网页=html+css+js html:网页元素内容 css:控制网页样式 js:操作网页内容,实现功能...

  • 2019-05-17邱钟秋第六天打卡#corona#一味学堂co

    一、心得 石器、木纹、玉器 石材:作法有三种1.纯贴图、2.平铺 、3.cr贴图随机 平铺:要注意砖大小、以及砖纹...

  • js 切割圆形

    这种类型就是线段与圆的交点问题 设线段就是P P 就是我们的线段,P (x ,y ) , P (x ,y ) 交点...

  • 2019-04-02

    网页中的静态资源 js.js -jsx

  • js 随机函数

    在写js中,我们经常遇见 js 随机函数,总结一下最近写验证码的时候 用到过的js 随机函数 Math.rando...

  • ios调用js(vue)

    app端调用普通的网页js: app端:代码触发网页的js方法: wkWebView.evaluateJavaSc...

  • 花里胡哨的响应式椭圆运动特效

    无聊用原生JS写的一个多小球椭圆运动特效1.改变窗口会自动改变椭圆形状和小球大小2.随机改变小球颜色3.可以随意设...

网友评论

      本文标题:网页JS随机圆形平铺

      本文链接:https://www.haomeiwen.com/subject/lzbzaltx.html