2017-02-02 30 views
0

Я попытался использовать Triangle library для тесселяции полигонов с отверстиями. Тесселированные треугольники будут отображаться OpenGL. Мой многоугольник имеет одно наружное кольцо и несколько внутренних колец. Все, что у меня есть, - это координаты x, y всех колец. Для того, чтобы мозаики с Triangle Lib, я должен передать список отверстий и количество отверстий в треугольник Lib его структура triangulateio члена: holelist и numberofholesУкажите отверстия в библиотеке треугольников

struct triangulateio { 
    REAL *pointlist;            /* In/out */ 
    REAL *pointattributelist;          /* In/out */ 
    int *pointmarkerlist;           /* In/out */ 
    int numberofpoints;           /* In/out */ 
    int numberofpointattributes;         /* In/out */ 

    int *trianglelist;            /* In/out */ 
    REAL *triangleattributelist;         /* In/out */ 
    REAL *trianglearealist;           /* In only */ 
    int *neighborlist;            /* Out only */ 
    int numberoftriangles;           /* In/out */ 
    int numberofcorners;           /* In/out */ 
    int numberoftriangleattributes;        /* In/out */ 

    int *segmentlist;            /* In/out */ 
    int *segmentmarkerlist;          /* In/out */ 
    int numberofsegments;           /* In/out */ 

    REAL *holelist;      /* In/pointer to array copied out */ 
    int numberofholes;          /* In/copied out */ 

    REAL *regionlist;      /* In/pointer to array copied out */ 
    int numberofregions;         /* In/copied out */ 

    int *edgelist;             /* Out only */ 
    int *edgemarkerlist;   /* Not used with Voronoi diagram; out only */ 
    REAL *normlist;    /* Used only with Voronoi diagram; out only */ 
    int numberofedges;            /* Out only */ 
}; 

Отверстия представлены координаты одной точки внутри отверстия , Мой вопрос: могу ли я сделать тесселяцию без указания отверстий (используйте только внутренние кольца)? ИЛИ, если мне нужно перечислить отверстия, как быстро найти одну точку внутри отверстий? Процесс здесь является критическим по времени.

ответ

0

Вы не можете выполнить тесселяцию без указания отверстий. Возможный способ найти точку внутри отверстия - это триангулировать ее, как если бы это было простое кольцо (в нем нет отверстий) и, например, центр массы одного из выходных треугольников. Надеюсь, это помогло.