Processing 我如何才能实现增长一组曲线的效果,以及当其他曲线出现时';trail,停下来';s增长

Processing 我如何才能实现增长一组曲线的效果,以及当其他曲线出现时';trail,停下来';s增长,processing,Processing,我想做到这一点: 这是我的密码: 类粒子{ PVector位置; PVector速度; PVector加速度; PVector初始速度; 阵列列表路径; 布尔生命=真; 浮点数q; 公共粒子(PVector位置、PVector初始速度){ 这个位置=位置; 这个加速度=新的PVector(0,0); this.initialVelocity=initialVelocity; 这个速度=新的PVector(0,0); 路径=新的ArrayList(); } 公开募捐{ 更新(); 显示(); }

我想做到这一点:

这是我的密码:

类粒子{
PVector位置;
PVector速度;
PVector加速度;
PVector初始速度;
阵列列表路径;
布尔生命=真;
浮点数q;
公共粒子(PVector位置、PVector初始速度){
这个位置=位置;
这个加速度=新的PVector(0,0);
this.initialVelocity=initialVelocity;
这个速度=新的PVector(0,0);
路径=新的ArrayList();
}
公开募捐{
更新();
显示();
}
私有void更新(){
速度加(加速度);
速度极限(最大速度);
trail.add(position.copy());
位置。添加(速度);
发生曲线();
arriveBorders();
path.add(position.copy());
加速度mult(0);
}
专用void display(){
beginShape();
冲程(0);
冲程重量(1);
noFill();
用于(PVector v:路径){
顶点(v.x,v.y);
}
}
public void followField(字段){
所需PVector=字段查找(初始速度);
所需。mult(最大速度);
PVector转向=PVector.sub(所需速度);
转向极限(最大力);
应用力(转向);
}
私人无效申请力(PVector力){
加速度。加(力);
}
公共布尔值isEndMove(){
回归生活;
}
私有无效到达边界(){
如果(位置x=宽度| |位置y=高度)
生命=虚假;
}
私有无效发生曲线(){
用于(PVector p:轨迹){
如果(p.x==position.x&&p.y==position.y)life=false;
}  
}
公共ArrayList getPath(){
返回路径;
}
}
occurrothercurves()
函数中,
ArrayList trail
是一个全局变量,用于记录所有粒子经过的位置,但它不起作用。
谢谢你的帮助。

堆栈溢出并不是专门为一般的“我该怎么做”类型的问题设计的。这是针对更具体的“我尝试了X,期望是Y,但得到了Z”类型的问题

但一般来说,您要做的似乎是检查新路径段是否与任何现有路径段相交。如果确实如此,则在交点处截断它(或只是不添加它),并停止向该路径添加路径段

如果你把你的问题分解成更小的部分,一次处理一部分,你的运气会好得多。然后,如果你被卡住了,你可以发布一个带有特定技术问题的帖子。祝你好运