如何将存储在 ArrayList 中的复杂形状与 Geomerative Library 合并
How Can I merge complex shapes stored in an ArrayList with Geomerative Library
我存储了这个class的形状:
class Berg{
int vecPoint;
float[] shapeX;
float[] shapeY;
Berg(float[] shapeX, float[] shapeY, int vecPoint){
this.shapeX = shapeX;
this.shapeY = shapeY;
this.vecPoint = vecPoint;
}
void display(){
beginShape();
curveVertex(shapeX[vecPoint-1], shapeY[vecPoint-1]);
for(int i=0;i<vecPoint;i++){
curveVertex(shapeX[i], shapeY[i]);
}
curveVertex(shapeX[0],shapeY[0]);
curveVertex(shapeX[1],shapeY[1]);
endShape();
}
}
在一个 ArrayList 中
shapeList.add(new Berg(xBig,yBig,points));
形状由八个 (curveVertex-) 点(xBig 和 yBig)定义,围绕随机定位的中心形成一个形状。
检查形状是否相交后,我想合并彼此重叠的形状。我已经可以检测到交叉路口,但很难管理合并。
我读到库 Geomerative 有一种方法可以用 union() 做类似的事情,但需要 RShapes 作为参数。
所以我的问题是:如何将我的形状更改为所需的 RShape 类型?或者更笼统(也许我犯了一些整体错误):How Can I merge complex shapes stored in an ArrayList with or without Geomerative Library?
查看 RShape 的 API:http://www.ricardmarxer.com/geomerative/documentation/geomerative/RShape.html
列出了可用于从一系列点创建 RShape
的构造函数和方法。它可能看起来像这样:
class Berg{
public RShape toRShape(){
RShape rShape = new rShape();
for(int i = 0; i < shapeX; i++){
rShape.addLineto(shapeX[i], shapeY[i]);
}
}
}
我存储了这个class的形状:
class Berg{
int vecPoint;
float[] shapeX;
float[] shapeY;
Berg(float[] shapeX, float[] shapeY, int vecPoint){
this.shapeX = shapeX;
this.shapeY = shapeY;
this.vecPoint = vecPoint;
}
void display(){
beginShape();
curveVertex(shapeX[vecPoint-1], shapeY[vecPoint-1]);
for(int i=0;i<vecPoint;i++){
curveVertex(shapeX[i], shapeY[i]);
}
curveVertex(shapeX[0],shapeY[0]);
curveVertex(shapeX[1],shapeY[1]);
endShape();
}
}
在一个 ArrayList 中
shapeList.add(new Berg(xBig,yBig,points));
形状由八个 (curveVertex-) 点(xBig 和 yBig)定义,围绕随机定位的中心形成一个形状。 检查形状是否相交后,我想合并彼此重叠的形状。我已经可以检测到交叉路口,但很难管理合并。
我读到库 Geomerative 有一种方法可以用 union() 做类似的事情,但需要 RShapes 作为参数。 所以我的问题是:如何将我的形状更改为所需的 RShape 类型?或者更笼统(也许我犯了一些整体错误):How Can I merge complex shapes stored in an ArrayList with or without Geomerative Library?
查看 RShape 的 API:http://www.ricardmarxer.com/geomerative/documentation/geomerative/RShape.html
列出了可用于从一系列点创建 RShape
的构造函数和方法。它可能看起来像这样:
class Berg{
public RShape toRShape(){
RShape rShape = new rShape();
for(int i = 0; i < shapeX; i++){
rShape.addLineto(shapeX[i], shapeY[i]);
}
}
}