欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Visual Studio 2013编译Triangle

程序员文章站 2022-06-17 08:54:21
...

1.Visual Studio 2013编译Triangle

下载Triangle源码解压,新建Windows控制台项目,导入triangle.h和triangle.c,如果不需要编译lib库,仅用命令行,则修改头文件如下:
#ifndef _TRIANGLE_HEADER_  
#define _TRIANGLE_HEADER_

#ifdef _cplusplus  
extern "C"{
#endif

#define REAL double  
#define ANSI_DECLARATORS  
#define VOID int  
#include "triangle.h"


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 */
};

#ifdef ANSI_DECLARATORS
void triangulate(char *, struct triangulateio *, struct triangulateio *,
                 struct triangulateio *);
void trifree(VOID *memptr);
#else /* not ANSI_DECLARATORS */
void triangulate();
void trifree();
#endif /* not ANSI_DECLARATORS */

#ifdef _cplusplus  
}
#endif
#endif
修改triangle.c文件,主要是加入宏定义:
#define NO_TIMER
#define CPU86
如果不需要编译lib库,不要打开#define TRILIBRARY宏定义,否则会找不到main函数无法生成triangle.exe文件,修改完成后生成即可。

2.CentOS编译showme

Triangle生成的三角网格需要用showme可视化,但是该软件只能在X Windows下使用,所以在CentOS下编译showme,首先需要安装X11相关的库,执行yum install libX11-devel安装完成后执行cc -O -o showme showme.c -lX11对showme进行编译,生成相应的执行文件,可以对Triangle生成的任意文件进行显示,例如显示face.poly的分割结果face.1.ele,使用命令./showme face.1.ele即可显示。