Domanda

Sto usando il GPC poligono di ritaglio lib e vogliono per creare un poligono programatically. Vedo solo codice per come crearne uno da un file. Come posso fare l'inizializzazione nel mio codice?

Nessuna soluzione corretta

Altri suggerimenti

Leggi meglio dal tuo link, trovare il doc pagina e leggere; in particolare funzione gpc_add_contour è probabile che cosa avete bisogno. Il gpc_vertex_list struct contiene un puntatore a gpc_vertex-s e il numero di vertice, ed è ciò che è necessario compilare. Come


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);

Il dottore non è troppo chiaro, ma è possibile dedurre l'uso, e la sperimentazione (loop try-errore) è tuo amico (io non installerà GPC di farlo comunque, quindi il mio codice potrebbero sbagliarmi). Il frammento di codice proposto dovrebbe creare un quadrato. Molti altri gpc_add_countour con lo stesso e p ma diverso elenco vertice può essere usato per creare un poligono più complessa, e naturalmente vl può essere modificato per avere all'inizio il poligono più complessa. Il terzo parametro dovrebbe essere 1 se si desidera che il profilo definito per essere un "buco" nella corrente del poligono (p).

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top