html5随机圆不重叠,flash圆点随机不重叠排列脚本

脚本尚在完善中,计划添加矩形样本的算法(目前只有圆形的算法)。

偷懒没有在容错和测试方面下太多功夫,所以设置不当或特殊情况可能会导致无法使用。

另外如果你机器不太好,最好别设置太多数量或者使用较大的样本。

使用注意:

首先确保你有一个当前文档打开着,这个文档要能新建图层(索引模式就不行了)~~ 我们最后的结果会生成到这个文档中

另外这个文档不能尺寸太小,不然会放不下大量的“点点”~

界面设置时候注意恰当的最大/最小半径,以及最小间距值(间距设为负数会产生重叠效果),这些值太大会放不下点。

然后看看效果图:

bbf5192c568d0649666170b63f98b302.png

7dd68026758d53898717fae8c060923e.png

5cce84ea6e6951398d7970b1f9932162.png

c8c4684b3b7842d47d22b3d1ee5cd780.png

037e00f8a04f3ae4aa9557e499305218.png

再看看界面图:

bd53d5d2309910b569dcd6270be8caab.png

用法:

本脚本限定 cs3 版本使用

把解压出来的 “点点.jsx” 文件复制到 “ps安装目录\预置\脚本” 下,重新打开ps以后就可以在~

[菜单- 文件-脚本] 里面找到 “点点”,或者解压出来,在开着ps的情况下,直接双击也可以用。(英文版拷贝jsx文件到 "ps安装目录\Presets\Scripts" 目录下)最后是脚本下载(需要的朋友先用着,不需要的朋友等待完成版吧~ 最近太懒,不知道什么时候完工):

迅雷下载地址 thunder://QUFodHRwOi8vc2guamI1MS5uZXQvZmxhc2gvcHNhY3Rpb25fZmxhc2guemlwWlo=

点击下载

要在HTML5中绘制多个随机并确保它们不重叠,可以采用以下步骤: 1. 首先,定义一个的类,包含心坐标(x,y)和半径(radius)属性,以及draw()方法来绘制。 2. 创建一个数组来存储所有的对象。 3. 使用一个循环来生成随机,每次循环生成一个并检查它是否与之前生成的重叠。如果重叠,则重新生成。 4. 生成一个随机心坐标和半径,然后检查它是否与数组中已有的重叠。可以使用勾股定理来计算心之间的距离,如果距离小于两个的半径之和,则认为它们重叠了。 5. 如果重叠,则将它添加到数组中,并调用它的draw()方法来绘制它。 以下是一个基本的实现示例: ```html <!DOCTYPE html> <html> <head> <title>随机</title> <style> canvas { border: 1px solid black; } </style> </head> <body> <canvas id="myCanvas" width="500" height="500"></canvas> <script> var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); // 定义类 function Circle(x, y, r) { this.x = x; this.y = y; this.r = r; this.draw = function() { ctx.beginPath(); ctx.arc(this.x, this.y, this.r, 0, 2*Math.PI); ctx.stroke(); } } var circles = []; // 生成随机 function generateCircles(num) { for (var i = 0; i < num; i++) { var x = Math.random() * canvas.width; var y = Math.random() * canvas.height; var r = Math.random() * 50 + 10; var circle = new Circle(x, y, r); // 检查是否重叠 var overlap = false; for (var j = 0; j < circles.length; j++) { var distance = Math.sqrt(Math.pow(circles[j].x - x, 2) + Math.pow(circles[j].y - y, 2)); if (distance < circles[j].r + r) { overlap = true; break; } } // 如果重叠,则添加到数组中并绘制它 if (!overlap) { circles.push(circle); circle.draw(); } else { i--; } } } generateCircles(10); </script> </body> </html> ``` 在上面的示例中,我们生成了10个随机,并使用数组来存储它们。每次生成一个新时,我们都会检查它是否与数组中已有的重叠,如果重叠,则重新生成。最后,我们调用每个的draw()方法来在canvas上绘制它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值