📄 geowin_minkowski_new.c
字号:
#include <LEDA/geowin.h>#include <LEDA/plane_alg.h>#include <LEDA/misc.h>#define POLYGON rat_polygon#define GEN_POLYGON rat_gen_polygon#define SEGMENT rat_segment#define TRIANGLE rat_triangle#define POINT rat_point#define VECTOR rat_vector#define NB rationalvoid ms(const list<POLYGON>& Lrobo, const list<POLYGON>& obstacle_list, list<GEN_POLYGON>& Lout){ Lout.clear(); if( Lrobo.length() < 1 ) return; POLYGON p1=Lrobo.head(); // the robot ... POLYGON pact; forall(pact,obstacle_list){ GEN_POLYGON result = MINKOWSKI_DIFF(pact,p1); Lout.append(result); }}int main(){ GeoWin GW("Minkowski differences of polygons"); GW.set_show_grid(true); GW.set_grid_dist(10); list<POLYGON> L; list<POLYGON> L2; geo_scene robot_scene = geowin_new_scene(GW, L,"Robot"); GW.set_fill_color(robot_scene, invisible); GW.set_visible(robot_scene,true); GW.set_description(robot_scene, "This scene holds one robot!\n"); geo_scene obstacle_scene = geowin_new_scene(GW, L2,"Obstacles"); GW.set_fill_color(obstacle_scene, invisible); GW.set_visible(obstacle_scene,true); GW.set_description(obstacle_scene, "This scene holds some obstacles !\n"); geowin_update<list<POLYGON>, list<GEN_POLYGON> > up(ms,0); list<geo_scene> influencers; influencers.append(robot_scene); influencers.append(obstacle_scene); geo_scene mink = geowin_new_scene(GW, up, influencers, "Minkowski differences of polygons"); GW.set_color(mink, blue2 ); GW.set_fill_color(mink, blue); GW.set_visible(mink, true); GW.edit(robot_scene); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -