我是一个完整的处理初学者,并试图让一排椭圆跟随鼠标的路径,它们的边缘接触,但不重叠。
我的第一个练习是使用一条线在数组中跟踪鼠标历史记录,注释掉的线也在每个索引处添加一个椭圆:
ArrayList <PVector> history;
float preX;
float preY;
void setup() {
size(1024, 1024);
history = new ArrayList <PVector> ();
}
void draw() {
background(255);
for(int i=1; i<history.size(); i++){
//ellipse(history.get(i).x, history.get(i).y, 50,50);
PVector pointA = history.get(i-1);
PVector pointB = history.get(i);
line(pointA.x, pointA.y, pointB.x, pointB.y);
}
}
void mouseDragged() {
preX= mouseX;
preY= mouseY;
history.add(new PVector(mouseX,mouseY));
}
我想我应该定义一个半径变量并使用 dist() 来计算当前鼠标位置与沿鼠标历史绘制的最后一个椭圆之间的距离,然后使用 if 语句仅在该距离 == 半径 * 时绘制椭圆2,但是当我尝试将其转换为处理代码时会非常卡住。任何人都可以帮助我开始吗?我在其他地方找不到提示时遇到了很多麻烦 - 即使只是朝着正确的方向推动也会非常感激!