javascript - 防止随机生成的位置剪裁画布边缘
问题描述
我正在创建一个画布,其中填充了在随机位置生成的圆圈,并让它们在画布上随机移动并在它们到达画布边缘时改变方向。我遇到的问题是一些圆圈是在画布之外生成的,所以它们卡在了边缘。
我已经尝试检查随机位置是否 +- 半径以查看它们是否符合边缘,但这似乎无助于下面的代码
if ((x - radius > 0 || x +radius < secondCanvas.width) && (y - radius > 0 || y + radius < secondCanvas.height))
{
circleArray.push(new Circle(x, y, dx, dy, radius))
}
生成圆圈位置的代码是
var radius = 5
var x = Math.random() * secondCanvas.width;
var y = Math.random() * secondCanvas.height;
期望的结果是防止绘制的对象剪裁画布的边缘
解决方案
从评论中回答,两者似乎都有效。
if(x - radius > 0 && x + radius < secondCanvas.width) && (y - radius > 0 && y + radius < secondCanvas.height)
var x = radius + (Math.random() * (secondCanvas.width - 2*radius));
推荐阅读
- python - Bs4错误可能来自错误的pip安装位置,我解决了但不是以pythonic方式
- php - Laravel 将聚合与另一个表中的值进行比较
- php - 服务器损坏文档上的 PHPWord 缺少提及某些部分
- javascript - 使用函数设置对象的值
- c - 如何在 C 中使用 rand() 函数生成 16 位随机数?
- jupyter-notebook - 如何使用 Python QuTip 实现这个哈密顿量?
- pandas - TypeError:重载函数“new_Date”的参数数量或类型错误
- javascript - 在 Google App 脚本中根据条件禁用按钮
- kotlin - 访问为 Textrecognizer 创建的变量
- android - FCM 在 Android 通知中不显示正文