⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 geowin_genpoly.c

📁 A Library of Efficient Data Types and Algorithms,封装了常用的ADT及其相关算法的软件包
💻 C
字号:
#include <LEDA/geowin.h>#include <LEDA/plane_alg.h>static void f_unite( const list<rat_gen_polygon>& Lin, rat_gen_polygon& Lout){   if( Lin.length() < 2 ) return;  rat_gen_polygon p1=Lin[Lin[0]];  rat_gen_polygon p2=Lin[Lin[1]];  Lout =p1.unite(p2);}static void f_intersec( const list<rat_gen_polygon>& Lin, rat_gen_polygon& Lout){  if( Lin.length() < 2 ) return;  rat_gen_polygon p1=Lin[Lin[0]];  rat_gen_polygon p2=Lin[Lin[1]];  Lout=p1.intersection(p2);}static void f_diff( const list<rat_gen_polygon>& Lin, rat_gen_polygon& Lout){  if( Lin.length() < 2 ) return;  rat_gen_polygon p1=Lin[Lin[0]];  rat_gen_polygon p2=Lin[Lin[1]];  Lout=p1.diff(p2);}static void f_sym_diff( const list<rat_gen_polygon>& Lin, rat_gen_polygon& Lout){  if( Lin.length() < 2 ) return;  rat_gen_polygon p1=Lin[Lin[0]];  rat_gen_polygon p2=Lin[Lin[1]];  Lout=p1.sym_diff(p2);}int main(){  GeoWin GW("Boolean operations on generalized polygons");    list<rat_gen_polygon> L;  geo_scene input = geowin_new_scene(GW, L);   GW.set_fill_color(input, invisible);    geowin_update<list<rat_gen_polygon>, list<rat_gen_polygon> > Unite(f_unite);  geowin_update<list<rat_gen_polygon>, list<rat_gen_polygon> > Inter(f_intersec);  geowin_update<list<rat_gen_polygon>, list<rat_gen_polygon> > Diff(f_diff);  geowin_update<list<rat_gen_polygon>, list<rat_gen_polygon> > SymDiff(f_sym_diff);         geo_scene output1=  geowin_new_scene(GW, Unite,input,"Union");  GW.set_color( output1, blue );  GW.set_color2( output1, blue );   GW.set_fill_color( output1, green);  geo_scene output2=  geowin_new_scene(GW, Inter,input, "Intersection");  GW.set_color( output2, blue );  GW.set_color2( output2, blue );   GW.set_fill_color( output2, blue);  geo_scene output3=  geowin_new_scene(GW, Diff,input, "Difference");  GW.set_color( output3, violet );  GW.set_color2( output3, violet );   GW.set_fill_color( output3, violet);  geo_scene output4=  geowin_new_scene(GW, SymDiff,input, "SymDiff");    GW.set_color( output4, violet );  GW.set_color2( output4, violet );   GW.set_fill_color( output4, violet);  GW.set_all_visible(true);  GW.edit(input);  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -