📄 geowin_constr_tr.c
字号:
#include <LEDA/geowin.h>#include <LEDA/rat_geo_alg.h>class geo_constr_tr : public geowin_update<list<rat_segment>,list<rat_segment> >{public: void update(const list<rat_segment>& Lin,list<rat_segment>& T) { T.clear(); GRAPH<rat_point,rat_segment> G; TRIANGULATE_SEGMENTS(Lin,G); edge_array<bool> drawn(G,false); edge e; forall_edges(e,G) { if (drawn[e]) continue; T.append(rat_segment(G[source(e)],G[target(e)])); edge r = G.reversal(e); if (r) drawn[r] = true; } }};class geo_constr_delau_tr : public geowin_update<list<rat_segment>,list<rat_segment> >{public: void update(const list<rat_segment>& Lin,list<rat_segment>& T) { T.clear(); GRAPH<rat_point,rat_segment> G; DELAUNAY_TRIANG(Lin,G); edge_array<bool> drawn(G,false); edge e; forall_edges(e,G) { if (drawn[e]) continue; T.append(rat_segment(G[source(e)],G[target(e)])); edge r = G.reversal(e); if (r) drawn[r] = true; } }};int main(){ GeoWin GW("Constrained Triangulation Demo"); list<rat_segment> L; geo_scene sc_input = geowin_new_scene(GW,L); GW.set_color(sc_input,green); GW.set_line_width(sc_input,3); GW.set_active_line_width(sc_input,3); geo_constr_tr c_triang; geo_scene sc1 = geowin_new_scene(GW,c_triang, sc_input, "CONSTRAINED TRIANGULATION"); GW.set_color(sc1,blue); GW.set_color2(sc1,blue); geo_constr_delau_tr c_del_triang; geo_scene sc2 = geowin_new_scene(GW,c_del_triang, sc_input, "CONSTRAINED DELAUNAY TRIANGULATION"); GW.set_color(sc2,red); GW.set_color2(sc2,red); GW.set_all_visible(true); GW.edit(sc_input); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -