Frage

Ich benutze den GPC Polygon Clipping Lib und möchten ein Polygonprogramm erstellen. Ich sehe nur Code, wie man einen aus einer Datei erstellt. Wie kann ich die Initialisierung in meinem Code durchführen?

Keine korrekte Lösung

Andere Tipps

Lesen Sie besser aus Ihrem Link, finden Sie die Dokument Seite und lesen; im Speziellen gpc_add_contour Funktion ist wahrscheinlich das, was Sie brauchen. Die Struct GPC_vertex_List enthält einen Zeiger auf gpc_vertex-s und die Anzahl der Scheitelpunkte und ist das, was Sie ausfüllen müssen.


gpc_polygon p = {0, NULL, NULL}; // "void" polygon
gpc_vertex v[] = { {0.0, 0.0}, {10.0, 0.}, {10.0, 10.10}, {0.0, 10.0} };
gpc_vertex_list vl = {
  4, v
};
//...
gpc_add_contour(&p, &vl, 0);

Der Dokument ist nicht zu viel klar, aber Sie können die Verwendung ableiten, und das Testen (Try-Error-Loops) ist Ihr Freund (ich werde GPC sowieso nicht installieren, also mein Code, also mein Code könnte falsch liegen). Der vorgeschlagene Code -Snippet sollte ein Quadrat erstellen. Einige andere gpc_add_countour Mit der gleichen & p, aber unterschiedliche Vertex -Liste kann verwendet werden, um ein komplexeres Polygon zu erstellen, und natürlich kann VL zu Beginn ein komplexeres Polygon geändert werden. Der dritte Parameter sollte 1 sein, wenn Sie möchten, dass die definierte Kontur ein "Loch" im Strom (P) -Polygon ist.

gpc_polygon subject;
int w = 100, h = 100, verticesCnt = 30;

//setup a gpc_polygon container and fill it with random vertices ...
subject.num_contours = 1;
subject.hole = 0;
subject.contour = new gpc_vertex_list; //ie just a single polygon here
subject.contour->num_vertices = verticesCnt;
subject.contour->vertex = new gpc_vertex [verticesCnt];
for (i = 0; i < verticesCnt; i++){
    subject.contour[0].vertex[i].x = random(w);
    subject.contour[0].vertex[i].y = random(h);
}

//do stuff with it here, then ...

gpc_free_polygon(&subject);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top