2015-11-02 4 views
1

хранить формы этого класса:Как я могу объединить сложные формы, хранящиеся в ArrayList с Geomerative библиотеки

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? Или более общий (возможно, я допустил некоторые общие ошибки): Как я могу объединить сложные фигуры, хранящиеся в ArrayList, с или без геомагнитной библиотеки?

ответ

1

Посмотрите на API для RShape: 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]); 
    } 
    } 
} 
+0

Благодарим за быстрый ответ. Я добавил это 'public RShape toRShape() { RShape rShape = new rShape(); для (int i = 0; i

+0

@ Wintergoldhähnchen Вы включили библиотеку в свой эскиз? Вы импортировали класс RShape? –

+0

Это заняло некоторое время, но 'public void toRShape() { RShape rShape = new RShape(); для (int i = 0; i

 Смежные вопросы

  • Нет связанных вопросов^_^