1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#define REAL float
#define SINGLE
#include <triangle.h>
extern "C" void triangulate(char*, struct triangulateio*, struct triangulateio*,
struct triangulateio*);
extern "C" void trifree(VOID* memptr);
int main()
{
{
int ki;
struct triangulateio in, out, vornout;
memset(&out, 0, sizeof(struct triangulateio));
memset(&in, 0, sizeof(struct triangulateio));
memset(&vornout, 0, sizeof(struct triangulateio));
/* Allocation des structures */
in.numberofpoints = 4;
in.pointlist = (float*)malloc(in.numberofpoints * 2 * sizeof(float));
/* Coordonnées des points */
in.pointlist[0] = 0.0; in.pointlist[1] = 0.0;
in.pointlist[2] = 1.0; in.pointlist[3] = 0.0;
in.pointlist[4] = 1.0; in.pointlist[5] = 1.0;
in.pointlist[6] = 0.0; in.pointlist[7] = 1.0;
in.numberofsegments = 0;
in.numberofholes = 0;
in.numberofsegments = 4;
in.segmentlist = (int*)malloc(in.numberofsegments * 2 * sizeof(int));
in.segmentlist[0] = 0; in.segmentlist[1] = 1;
in.segmentlist[2] = 1; in.segmentlist[3] = 2;
in.segmentlist[4] = 2; in.segmentlist[5] = 3;
in.segmentlist[6] = 3; in.segmentlist[7] = 0;
/* Exécuter la triangulation */
triangulate((char*)"pqD", &in, &out, NULL);
printf("Triangles générés :\n");
for (int i = 0; i < out.numberoftriangles; i++) {
printf("Triangle %d: %d %d %d\n", i,
out.trianglelist[i * 3],
out.trianglelist[i * 3 + 1],
out.trianglelist[i * 3 + 2]);
}
ki = 0;
}
} |
Partager