javascript - p5js for loop 编程问:如何让鼠标指针附近的圆圈变大变亮
问题描述
我在 p5js 中编写了这个函数,其中圆圈在指针附近变小。我希望它做相反的事情。我想让指针附近的圆圈变大。我还希望它们在鼠标附近变得更亮。但我一直无法弄清楚解决方案!这是代码:
function setup() {
createCanvas(400, 400);
colorMode(HSB, 400);
}
function draw() {
background(220);
noFill();
noStroke();
for(var y=10;y<400; y+=40){
for(var x=10; x<400; x+=40){
var myHue = map(y,0,400,230,320);
fill(myHue,400-x,400);
var rad = dist(x,y,mouseX, mouseY)/4;
ellipse(x,y,rad);
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.js"></script>
解决方案
您必须定义最小和最大半径。例如:
var max_rad = 40;
var min_rad = 5;
半径是与鼠标的距离和距离的min_rad
最大值max_rad
。例如:
var rad = max(min_rad, max_rad - dist(x, y, mouseX, mouseY)/4);
请参阅示例:
function setup() {
createCanvas(400, 400);
colorMode(HSB, 400);
}
function draw() {
background(220);
noFill();
noStroke();
var max_rad = 40;
var min_rad = 5;
for(var y=10;y<400; y+=40){
for(var x=10; x<400; x+=40){
var myHue = map(y,0,400,230,320);
fill(myHue,400-x,400);
var rad = max(min_rad, max_rad - dist(x, y, mouseX, mouseY)/4);
ellipse(x,y,rad);
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.js"></script>
推荐阅读
- javascript - 根据属性更改innerHTML?
- vue.js - this.$axios.get 不获取数据
- django - 如何在 Django 中获取 QuerySet 作为 TextChoice
- hadoop - 使用 Pig latin 从文件中获取最大日期
- python - 如何有效地比较两组无序向量(`np.ndarray`)?
- shopify - 向每个 Shopify 产品系列页面添加图片横幅
- c++ - c++:通过引用传递二维数组?
- php - Laravel 和 React Native 可以分开工作吗?
- android - 删除容器之间的线条(颤动/飞镖)
- python - 设置/重置在 __main__ 中的 __init__ 中声明和初始化的变量的值