#include #include "AscInterf.h" int main() { #include "ASC_using.h" ASC_Screen* pts[24]; Shape* pth[24]; try { ASC_Screen::set_Screen_corners(Point(-10.,0.),Point(10.,10.)); ASC_Rect R[7]; ASC_Triangle T[2]; ASC_Line L[8]; ASC_Dot D[5]; ASC_Circle C; ASC_Square S; int i=0, j; for (j=0; j<7; j++) pth[i]=&R[j], pts[i++]=&R[j]; for (j=0; j<2; j++) pth[i]=&T[j], pts[i++]=&T[j]; for (j=0; j<8; j++) pth[i]=&L[j], pts[i++]=&L[j]; for (j=0; j<5; j++) pth[i]=&D[j], pts[i++]=&D[j]; pth[i]=&C; pts[i++]=&C; pth[i]=&S; pts[i]=&S; pth[0]->set(Point(-5.,2.),Point(5.,7.)); // facciata pth[1]->set(Point(-0.8,2.),Point(0.,3.8)); // porta ( prima anta) pth[2]->set(Point(0.,2.),Point(0.8,3.8)); // porta (seconda anta) pth[3]->set(Point(-4.,5.),Point(-3.5,6.2)); // finestra sinistra (prima anta) pth[4]->set(Point(-3.5,5.),Point(-3.,6.2)); // finestra sinistra (seconda anta) pth[5]->set(Point(4.,5.),Point(3.5,6.2)); // finestra destra (prima anta) pth[6]->set(Point(3.5,5.),Point(3.,6.2)); // finestra destra (seconda anta) pth[7]->set(Point(-0.8,3.8),Point(0.8,3.8),Point(0.,5.)); // tettuccio porta pth[8]->set(Point(-5.,7.),Point(5.,7.),Point(0.,10.)); // tetto pth[9]->set(Point(-5.,2.),Point(-5.75,0.8)); // linea sin. piazz. di ingresso pth[10]->set(Point(5.,2.),Point(5.75,0.8)); // linea ds. piazz. di ingresso pth[11]->set(Point(-5.75,0.8),Point(5.75,0.8)); // linea davanti piazz. di ingresso pth[12]->set(Point(-1.,0.8),Point(-3.,-2.4)); // linea sinistra strada pth[13]->set(Point(1.,0.8),Point(3.,-2.4)); // linea destra strada pth[14]->set(Point(3.,8.2),Point(3.,9.2)); // linea sinistra camino pth[15]->set(Point(4.,7.6),Point(4.,8.6)); // linea destra camino pth[16]->set(Point(3.,9.2),Point(4.,8.6)); // linea superiore camino pth[17]->set(Point(4.,9.2)); // fumo camino pth[18]->set(Point(4.2,9.6)); // fumo camino pth[19]->set(Point(4.5,10.)); // fumo camino pth[20]->set(Point(4.8,10.)); // fumo camino pth[21]->set(Point(1.5,4.)); // targhetta numero civico pth[22]->set(Point(0.,8.5),0.8); // lucernaio pth[23]->set(Point(0.,6.),0.8); // finestrina centrale Point cen; char zoom; while (true) { ASC_Screen::clear(); for (j=0; j<24; j++) pts[j]->draw(); ASC_Screen::OnScreen(); cout << "Zoom aumenta(+), riduci(-) o cambia punto centrale(p) "; cin >> zoom; if ( zoom == 'p' ) { cin >> cen ; ASC_Screen::move_center(cen); } else if ( zoom != '+' && zoom != '-' ) break; else if ( zoom == '+' ) ASC_Screen::zoom(); else ASC_Screen::zoom(false); } } catch (Shape_Error e) { cout << e.msg; } catch (Screen_Error e) { cout << e.msg; } return 0; }