windows.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. #include <LEDA/window.h>
  2. main()
  3. {
  4.    // we open five windows w1, w2, w3, w4, and w5
  5.    // for points, segments, lines, and circles
  6.    // w5 is used as a log-window
  7.    window w1(550,410,window::min,window::min,"DRAW POINTS");
  8.    window w2(550,410,window::max,window::min,"DRAW SEGMENTS");
  9.    window w3(550,410,window::min,window::max,"DRAW LINES");
  10.    window w4(550,410,window::max,window::max,"DRAW CIRCLES");
  11.    window w5(160,480,window::center,window::center,"CENTER WINDOW");
  12.    w5.set_show_coordinates(false);
  13.    double  x,y;
  14.    point   p;
  15.    segment s;
  16.    line    l;
  17.    circle  c;
  18.    window* w;
  19.    // wait for mouse click and get pointer to the corresponding window 
  20.    while(read_mouse(w,x,y) != 3)  
  21.    { 
  22.      if (w == &w1) // draw points
  23.      { put_back_event();
  24.        w1 >> p;
  25.        w1.draw_point(p,blue);
  26.        w5.message("w1: point");
  27.        continue;
  28.       }
  29.      if (w == &w2) // draw segments
  30.      { put_back_event();
  31.        w2 >> s;
  32.        w2.draw_segment(s,violet);
  33.        w5.message("w2: segment");
  34.        continue;
  35.       }
  36.      if (w == &w3) // draw lines
  37.      { put_back_event();
  38.        w3 >> l;
  39.        w3.draw_line(l,green);
  40.        w5.message("w3: line");
  41.        continue;
  42.       }
  43.      if (w == &w4) // draw circles
  44.      { put_back_event();
  45.        w4 >> c;
  46.        w4.draw_circle(c,orange);
  47.        w5.message("w4: circle");
  48.        continue;
  49.       }
  50.      if (w == &w5) // clear log-window
  51.      { w5.clear();
  52.        continue;
  53.       }
  54.     }
  55.    return 0;
  56. }