1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu tối ưu hóa dòng xe trong giao thông của tp hcm

202 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 202
Dung lượng 4,43 MB

Nội dung

BÁO CÁO CUỐI KỲ NGHIÊN CỨU TỐI ƯU HĨA DỊNG XE TRONG GIAO THÔNG TẠI TP HCM Chủ nhiệm: PGS TS Hồ Thanh Phong, Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Thành viên: Th.S Nguyễn Văn Chung, BM Kỹ Thuật Hệ Thống Công Nghiệp, ĐH Bách Khoa – ĐHQG TP HCM Th.S Trần Văn Sƣ Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Th.S Hồ Doãn Quốc Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Th.S Trƣờng Bá Huy Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Th.S Bùi Phạm Lan Phƣơng Trƣờng ĐH Quốc Tế – ĐHQG TP HCM TS Nguyễn Đình Uyên Trƣờng ĐH Quốc Tế – ĐHQG TP HCM TS Hoàng Tuấn Anh Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Th.S Trần Thị Thanh Nguyên Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Th.S Võ Minh Thạnh Trƣờng ĐH Quốc Tế – ĐHQG TP HCM 10.KS Nguyễn Ngọc Trọng Trƣờng ĐH Quốc Tế – ĐHQG TP HCM Trang TÓM TẮT NỘI DUNG NGHIÊN CỨU Đề tài ―Nghiên cứu tối ƣu hóa dịng xe giao thơng TP.HCM‖ nhằm xây dựng công cụ hỗ trợ định cho ngƣời quản lý để đánh giá phƣơng án kiểm soát đầu tƣ vào hệ thống giao thông nội thành Đề tài phát triển mở rộng từ hai đề tài tác giả: "Ứng dụng kỹ thuật mô tối ƣu vào việc nghiên cứu giao thông TP HCM" (năm 1999) "Các biện pháp trƣớc mắt giảm kẹt xe TP.HCM" (năm 2003) Kỹ thuật mô đƣợc xử dụng đề tài, nhằm khảo sát thực mơ mạng giao thơng có nhiều nút, từ xác định đƣợc trạng thái mạng giao thông qua thông số đặc trƣng nhƣ lƣu lƣợng, mật độ vận tốc trung bình… phƣơng tiện giao thông Với cách tiếp cận dùng kỹ thuật mơ phỏng, mơ hình đề tài giúp nghiên cứu đƣợc hệ thống giao thông phức tạp vốn bao gồm nhiều yếu tố ngẫu nhiên hàm chứa nhiều mối liên kết Đề tài xây dựng, áp dụng cách phối hợp tín hiệu đèn cho mạng có điểm kẹt xe nhất, lƣu lƣợng xe qua mạng cao nhất, thời gian xe lƣu thơng mạng Đề tài đề xuất đến việc ứng dụng mơ hình mơ để khảo sát việc điều khiển đèn giao thông thông minh, xây dựng "Hệ thống cảnh báo điều khiển giao thông", ghi nhận xử lý điều khiển giao thơng tƣơng đối thơng minh, có khả báo kẹt xe phạm vi rộng thông qua kỹ thuật nhận dạng hình ảnh, kỹ thuật truyền tin cho ngƣời tham gia giao thơng Ngồi ra, đề tài đề xuất xây dựng mơ hình tốn để mơ trạng thái giao thông đặc trƣng trạng giao thơng Việt Nam, cụ thể thành phố Hồ Chí Minh Đề tài đề xuất cách tiếp cận cho giải pháp vấn đề giao thông công cụ mô vi mô giải pháp giao thông thông minh Trang SUMMARY OF RESEARCH CONTENT Project "Optimization of vehicle traffic in Vietnam" has built a tool to support decision makers evaluating the traffic control plans and investment in urban transport systems This topic was developed from two previous projects of the same author: "Application of simulation and optimization to the study of traffic in Hochiminh city" (1999) and "The immediate measures to reduce traffic congestion in Hochiminh city "(2003) Simulation was used in the project to examine and implement a network traffic simulation with multiple nodes, then to determine the status of network traffic through characteristic parameters such as traffic flow, density and the average velocity of the vehicles With this approach, the model helped researchers or managers to study a complex traffic system which includes a lot of random factors and contain multiple links This study has also built, and applied a combination of traffic lights so that the network has the least congestion, the most traffic flow, and the least time of vehicle in the network The project initiated the application of the proposed simulation model to investigate the smart traffic light controller, to develop "The warning and traffic control system", which can monitor, control traffic, report traffic jam by using image recognition technique and sending guiding information to commuters In addition, the study proposed the building of mathematical models to simulate the traffic which is relevant to conditions in Vietnam, particularly in Hochiminh city The study suggested an approach to traffic problems in the micro-simulation tools and solutions for intelligent traffic Trang MỤC LỤC  PHẦN MỞ ĐẦU 11 CHƢƠNG - GIỚI THIỆU VẤN ĐỀ 12 1.1 GIỚI THIỆU 12 1.2 VẤN ĐỀ NGHIÊN CỨU .18 1.3 MỤC TIÊU ĐỀ TÀI .20 1.4 PHẠM VI NGHIÊN CỨU 20 CHƢƠNG - PHÂN TÍCH HỆ THỐNG GIAO THƠNG 21 2.1 ĐẶC TÍNH LƢU LƢỢNG .21 2.1.1 Thời gian xe (Time headway) .21 2.1.2 Lƣu lƣợng 22 2.1.3 Phép đo lƣu lƣợng 23 2.2 ĐẶC TÍNH VẬN TỐC 24 2.2.1 Vận tốc vi mô 24 2.2.2 Vận tốc vĩ mô 25 2.2.3 Phép đo vận tốc 26 2.3 ĐẶC TÍNH MẬT ĐỘ .27 2.3.1 Khoảng cách đầu xe ( Distance headway) .27 2.3.3 Phép đo mật độ 29 2.4 VẤN ĐỀ TẮC NGHẼN 30 2.4.1 Hiện tƣợng tắc nghẽn giao thông .30 2.4.2 Các đại lƣợng liên quan đến tắc nghẽn giao thông: 30 2.4.3 Hệ số tắc nghẽn cách xác định: 30 CHƢƠNG - MÔ PHỎNG HỆ THỐNG GIAO THÔNG 33 3.1 CÁC THÀNH PHẦN CỦA HỆ THỐNG GIAO THÔNG 33 3.1.1 Hệ thống đƣờng 33 Trang 3.1.2 Phƣơng tiện giao thông 34 3.1.3 Ngƣời lái xe .35 3.1.4 Hệ thống điều khiển 36 3.2 CÁC MƠ HÌNH CỦA HTGT .38 3.2.1 Mơ hình gia tốc .38 3.2.2 Mơ hình chuyển 39 3.2.3 Mơ hình chuyển hƣớng 40 3.2.4 - Mơ hình dừng – chạy .41 3.2.5 Mơ hình tranh chấp 41 CHƢƠNG - PHÂN TÍCH HỆ THỐNG 44 4.1 MỤC TIÊU .44 4.2 PHÂN TÍCH : 45 4.2.1 Chi tiết 45 4.2.2 Các mơ hình toán 46 4.3 PHẦN MỀM MÔ PHỎNG .47 4.4 THIẾT KẾ CƠ SỞ DỮ LIỆU 48 4.4.1 Thông số vật lý hệ thống: 48 4.4.2 Thơng số cấu hình mơ : 49 4.4.3 Trạng thái hệ thống : 49 4.4.4 Tập tin Amination 50 4.5 DỮ LIỆU ĐẦU VÀO CHO CHƢƠNG TRÌNH MƠ PHỎNG .50 4.5.1 Dữ liệu đầu vào cho chƣơng trình mơ phỏng: 50 4.5.2 Phƣơng pháp thu thập số liệu: 51 CHƢƠNG - CÁC THUẬT TOÁN TỐI ƢU MẠNG 52 5.1 THUẬT TOÁN ĐƢỜNG ĐI NGẮN NHẤT 52 Thuật toán Dijkstra 52 Trang Thuật toán Floyd 52 5.2 MƠ HÌNH DÒNG LỚN NHẤT .55 CHƢƠNG - MỘT TRƢỜNG HỢP NGHIÊN CỨU 58 6.1 GIỚI THIỆU 58 6.2 CÁC THÔNG SỐ GIAO THÔNG 60 6.3 MÔ TẢ CHƢƠNG TRÌNH MƠ PHỎNG MẠNG GIAO THƠNG .60 6.3.1 Chƣơng trình Road Structuring 61 6.3.2 Chƣơng trình Simulation 62 CHƢƠNG – CÁC GIẢI PHÁP TỐI ƢU HÓA HỆ THỐNG 64 7.1 ĐIỀU KHIỂN TỐI ƢU ĐÈN GIAO THÔNG .64 7.1.1 Giải thuật điều khiển đèn 64 7.1.2 Thực mô với tín hiệu đèn đƣợc điều khiển 66 7.1.3 Kết luận .73 7.2 XÂY DỰNG HỆ THỐNG CẢNH BÁO TÌNH TRẠNG GIAO THƠNG 73 7.2.1 Hệ thống thiết bị giám sát nút giao thông 74 7.2.2 Hệ thống trung tâm điều hành 77 7.2.3 Hệ thống mạng truyền liệu 79 7.3 GIẢI PHÁP CAMERA CHO HỆ THỐNG GIAO THÔNG THÔNG MINH .79 7.3.1 Hệ thống camera giao thông .79 7.3.2 Phƣơng pháp xử lý video giao thông 82 7.3.3 Phần mềm kết 88 CHƢƠNG - KẾT LUẬN 90 PHỤ LỤC A - THAM SỐ MƠ HÌNH MƠ PHỎNG 94 PHỤ LỤC B - BẢNG SỐ LIỆU THU THẬP 96 PHỤ LỤC C - MÃ NGUỒN CHƢƠNG TRÌNH MÔ PHỎNG 105 Trang DANH SÁCH HÌNH VẼ  1- Các trục giao thơng nội thành 15 - Các hướng di chuyển phương tiện giao thông 16 - Bức tranh giao thông 2010 17 - Các loại nghiên cứu giao thơng thích hợp tương tác chúng 18 - Dùng cảm biến để đo khoảng cách thời gian .23 - Dùng cảm biến đếm để đo lưu lượng 24 - Đo mật độ xe .31 H - Cách phân chia phụ 33 - Mô tả phản ứng người lái xe với tín hiệu đèn 37 10 - Mơ hình gia tốc 38 11 - Mô tả việc chuyển .39 12 - Động tác chuyển xe xe chạy 39 13 - Mơ hình chuyển hướng .40 14 - Mơ hình tranh chấp dừng – chạy từ hai hướng ngược 41 15 - Vùng tranh chấp từ hai nhánh khác 42 16 - Trường hợp khác tranh chấp xe từ hai hướng vng góc 42 17 - Trường hợp khác tranh chấp xe từ hai hưống vng góc (tt) 43 18 - Quy tắc quẹo giao lộ 44 19 - DFD cấp 47 20 - Lưu đồ phần mềm .48 21 - Quan hệ liệu tập tin Animation 50 22 - Mơ hình mạng điểm .53 23 - Bước k mơ hình mạng điểm 54 Trang 24 – Mơ hình dịng lớn .55 25 - Sơ đồ mạng dòng chảy toán maximum flow .57 26- Bản đồ mạng giao thông cho trường hợp nghiên cứu .58 27 - Mơ hình mạng logic khu vực nghiên cứu 59 28 - Mơ tả dịng liệu hệ thống chương trình Simulation for Traffic 61 29 - Nhập mạng giao thơng nghiên cứu vào chương trình mơ 62 30 - Vùng tranh chấp hệ thống đường vào vùng tranh chấp 65 31 - Sơ đồ giải thuật đìều khiển đèn 65 32 - Mô tả diện tích chiếm chỗ 66 33 - Hình ảnh mơ thời điểm 600 giây cho trường hợp không điều khiển 67 34 - Hình ảnh cho trường hợp có điều khiển đèn 600 giây 68 35 - Tỷ lệ chiếm chỗ 69 36 - Số xe vào vùng tranh chấp 69 37 - Thời điểm khoảng 450 giây mô .70 38 - Biểu đồ mật độ theo thời gian 71 39 - Kết mô thời điểm 455 giây 72 40 - Biểu đồ số xe vào vùng tranh chấp 73 41 - Sơ đồ khối tổng quát hệ thống 74 42 - Minh họa cảm biến nhân công 76 43 - Sơ đồ khối handy sensor 76 44 - Sơ đồ khối biển báo 77 h 45 - Trung tâm điều hành 77 46 - Thành phần xe tham gia giao thông Tp.HCM .79 47 - Hệ thống camera giám sát giao thông Tp.HCM 80 48 - Hệ thống camera IP (Brickcom) .81 Trang 49 - Trung tâm điều khiển giao thông với đồ GIS hệ thống xử lý camera thông minh 82 50 - Tiền xử lý ảnh để lọc bỏ nhiễu 82 51 - Xác định tự động giải phân cách sau 900 frame ảnh (30 giây) .83 52 - Tìm kiếm vector chuyển động 84 53 - Block matching xác định vector chuyển động 84 54 - Adaptive block matching 85 55 - Kết tính tốn motion vector vùng 86 56 - Kết canny edge detection 87 57 - Fuzzy Logic với đầu vào mật độ giao thông vận tốc trung bình .87 58 - Kết thử nghiệm thu hình phân tích ngã tư Thủ Đức 88 59 - Hệ thống camera WiMAX máy tính trung tâm xử lý camera .89 Trang DANH SÁCH BẢNG BIỂU  - Phân bố lượt người dân thành phố năm 1996 13 - So sánh lượng xe đếm qua trục năm 1995 1996 13 - Ước lượng lượt lại nơi nơi đến cụm đô thị 14 - Bảng phân nhóm xe theo đặc tính 35 - Thuộc tính gia tốc phương tiện giao thơng 35 - Đặc tính người lái xe 36 - Bảng thuộc tính kỹ thuật thông số vật lý 45 - Các tuyến đường mạng nghiên cứu 58 - Kết áp dụng không áp dụng giải thuật điều khiển 66 10 - Giá trị khảo sát cho trường hợp không áp dụng giải thuật điều khiển đèn 68 11- Kết trường hợp có điều khiển .70 12 - Chỉ số tốc độ xe (kmi) .94 13 - Bảng phân nhóm xe theo đặc tính 94 14 - Bảng thuộc tính gia tốc phương tiện giao thông .94 15 - Bảng đặc tính người lái xe 95 16 - Bảng hệ số , ,  .95 17 - Bảng số liệu phát xe (xe/phút) lane tuyến đường mạng nghiên cứu .96 Trang 10 /* Tao func=del cho right click tren node +cap nhat data lien quan*/ v= LinkIn,pop(); { edge e=gw,get_found_edge(); EInfo=CheckDataEdge(info); info=G,inf(v); result=result+ " > " + EInfo,Name ; NInfo=CheckDataNode(info); } if(NInfo,Style==1) node u=source(e); SetNode(gw,v); node v = target(e); } } DataEdge EInfo; result=result + string(" %d",gw,get_index(alg_dest))+"\n"; while(!LinkOut,empty()) edge f; if(draw) { string info; { v= LinkOut,pop(); FILE *f; info=G,inf(v); forall_out_edges(f,v) f=fopen("c:\\logfile,tfc","a+t"); NInfo=CheckDataNode(info); if((f!=e)&&(target(f)==u)) fprintf(f,result); if(NInfo,Style!=0) { CloseFile(f); { info=G,inf(f); } forall_in_edges(e,v) EInfo=CheckDataEdge(info); gw,set_flush(flush); SetEdge(gw,e); EInfo,Direction=0; return totallen ; } info=StringEInfo(EInfo); } } G,assign(f,info); } /* Travelling Shortest Path */ } /* -Dijkstra */ void Travelling(GraphWin& gw) gw,del_edge(e); gw,redraw(); int Dijkstra_cal(GraphWin& gw,bool draw) if(RUN) { AdjustDataDelEdge(gw,u,v); } { if(num_alg==NumNode) bool flush = gw,set_flush(false); { node_array& pred(G); set KQ ; edge_array cost(G); node u,root,shortestnode; edge h; /* -*/ root=travel,choose(); string info; alg_source=root; DataEdge EInfo; void RightClickNode(GraphWin& point&) Node gw,const travel,del(root); //lay v khoi tap hop forall_edges(h,G) int CalWeight,Weight=2000000; { /* Tao func=del cho right click tren node + cap nhat data lien quan*/ while(!travel,empty()) info=G,inf(h); { EInfo=CheckDataEdge(info); forall_nodes(u,G) cost[h]=EInfo,Length ; { list LinkIn; list LinkOut; { } //show_msg(gw,"\\bf Paths"); Computing if(travel,member(u)) Shortest { int totallen; alg_dest=u; node v=gw,get_found_node(); edge e; string info; totallen=DIJKSTRA(G,alg_source,alg_dest,cost,p red); CalWeight=Dijkstra_cal(gw,0); if(CalWeight0) } file_panel->add_menu(dir_item,dir_list,8); //gw,zoom_graph(); gw,zoom_area(-7,00,-7,00,497,00,336,00); } { file_panel->add_menu(file_item,file_list,8); f=fopen(fname,"w"); file_panel->redraw_panel(); fprintf(f,"NODES\n"); } */ node v; forall_nodes(v,G) /* -Clear All Graph */ /* */ { info=G,inf(v); void ClearGraph(GraphWin& gw) { window& W = gw,get_window(); W,set_cursor(); panel P; int choice=0; while(choice==0) { P,text_item("\\bif\\red Do you really want to CLEAR all Graph?"); P,text_item(""); int File_handlerRun(GraphWin& gw,int mode) info=info+"\n"; { fprintf(f,info); window& W = gw,get_window(); W,set_cursor(); fprintf(f,"EDGES\n"); panel P; edge e; int but=0; forall_edges(e,G) switch (mode) { { info=G,inf(e); case 1: info = info+"\n"; P,text_item("\\bf Nodes Table"); P,buttons_per_line(4); } Output File for LedaFileReport(fname,dname); } } case 3: P,text_item("\\bf Animation"); { Output File for /* */ break; gw,clear_graph(); GridCoord Load(GraphWin& gw,node v) case 4: P,text_item("\\bf Output File for Name Storage"); break; RUN=false; } fprintf(f,info); break; choice=P,open(W); IndexEdge=0; Data CloseFile(f); P,text_item("\\bf Simulation"); //IndexNode=0; Links case 2: P,button("No",1); } & break; P,button("Yes",2); if (choice == 2) } /* Nhap toa cho cac node hien hanh */ { GridCoord kq; } window& W = gw,get_window(); W,set_cursor(); } P,button("Save",1); Trang 191 panel P; ClearGraph(gw); } /* end for */ int choice = 0,xcoord=1,ycoord=1; while(choice2==0) if(Co) string text = string("Input Grip Coord For Node %d",gw,get_index(v)); { { P2,text_item(""); while(choice==0) P2,text_item("How gw,set_position(x,y); many node gw,redraw(); Node ?"); { P,text_item(""); } P2,int_item("Total:",NumNode,2,200); P,text_item(text); P,int_item("X_grid_coord :",xcoord,1,200); P2,buttons_per_line(4); /* -*/ choice2=P2,open(W); P,int_item("Y_grid_coord :",ycoord,1,200); } P,button("OK",1); bool AdjustGraph(GraphWin& gw)//RED complete_graph(G, NumNode); P,button("Cancel",2); /* Ham thuc hien sau nguoi su dung da ve xong Graph , Muc dich gw,redraw(); P,buttons_per_line(4); }*/ chinh la dieu chinh toa cac node cho phu hop voi chieu dai cua link choice=P,open(W); } if(choice ==1) { kq,xcoord=xcoord; kq,ycoord=ycoord; } } P2,button("Ok",1); nhap vao(~chieu dai doan duong thuc te) dua vao ham LenCal o tren */ GridCoord Toado; set S; { S,clear();//Cho chac an window& W = gw,get_window(); node v; W,set_cursor(); bool Co=true,loop=true; panel P2; forall_nodes(v,G) if(choice==2) int choice=0; { { bool Co=true; kq,xcoord=0; { kq,ycoord=0; point p; Toado=Load(gw,v); DataPoint sam; } if((Toado,xcoord==0)&&(Toado,ycoord==0 return kq; )) node_arrayy(G); { } node u; Co=false; node_arrayP(G); break; /* */ node_arrayx(G); gw,get_position(P); } forall_nodes(u,G) else void SnapCoord(GraphWin& gw) /* Chuyen cac node den toa tuong ung */ { { x[u]=P[u],xcoord(); point p(double(Toado,xcoord),double(Toado,ycoord)); { if(!S,member(p)) node_arrayx(G); //W,set_cursor(); //panel P,P2; edge_array dist2(G); S,insert(p); //window& W = gw,get_window(); node v=G,first_node(); x[v]= Toado,xcoord*grid_num; y[v]= Toado,ycoord*grid_num; /* int choice=0,choice2=0,NumNode=2; forall_nodes(u,G) dist[u]=-1; list V = BFS(G,v,dist); /* Sap xep dsach node theo BFS */ loop=true; } while(choice==0) P,text_item("Do you want to Spawn Node forall_nodes(u,G) dist[u]=-1; else { P,text_item(""); { while(choice==0) show_msg(gw,"\\bif\\red\\ Node available at this coordinate"); ?"); loop=false; P,button("Yes",1); choice=P,open(W); } if(choice==1) ERROR!! { P2,text_item(""); P2,text_item("\\bif\\blue Auto-Adjust tool perform adjusting your Graph"); } P,button("No",2); P,buttons_per_line(4); } node_array dist(G); { node_arrayy(G); y[u]=P[u],ycoord(); P2,text_item(""); } P2,text_item("\\bif\\blue base on the Length of Link,"); } while(!loop); if(!Co) P2,text_item(""); break; P2,text_item("\\bif\\black Do you want to use Auto-Adjust tool?"); { P2,button("Yes",1); Trang 192 P2,button("No",2); dist2[e]==1; P2,buttons_per_line(4); gw,set_border_color(v,clr); gw,set_position(x,y); choice=P2,open(W); //gw,redraw(); gw,redraw(); } break; } } } if(choice==2) sum1=0;//khoi phuc gia tri cu~ } /* End While */ { if(Co) forall_nodes(u,G) dist[u]=1; /* Loai bo Node chi co link hoac in hoac out -*/ { Co=false; gw,set_position(x,y); } info=G,inf(v); gw,redraw(); NInfo=CheckDataNode(info); } edge e; if(NInfo,Style!=0) return Co; forall_edges(e,G) dist2[e]=-1; { } forall_in_edges(e,v) dist[v]=1; if(e) /* -*/ sum1=sum1+1; forall_out_edges(e,v) string info; bool CheckGeometric(GraphWin& gw) DataEdge EInfo; /* Ham thuc hien kiem tra cac noi dung sau: //forall_nodes(u,G) + Neu la node Intersection(co Control) thi so link chi co the la hoac while(!V,empty()) +Cac node chi co link ,1 link vao thi bao loi cho user { v=V,pop(); if(e) sum2=sum2+1; if((sum1==0)||(sum2==0)) //Chi co link vao hoac link { +Cac node chi co node hoac node vao ma khong phai node phat thi cung bao loi //v=u; //show_msg(gw,"Yeah"); cho user,*/ forall_adj_edges(e,v) { { Flag=false; zoom_to_area(gw,v); width = gw,get_border_width(v); clr = gw,get_border_color(v); node v,u; /* Set thong so moi */ edge e; if(dist2[e]==-1) gw,set_border_width(v,3); string info; gw,set_border_color(v,red); { DataNode NInfo; info=G,inf(e); bool Flag=true; EInfo=CheckDataEdge(info); int in,out,sum1=0,sum2=0; gw,redraw(); show_msg(gw,"\\bf\\red Node and Link unmatch,"); show_msg(gw,"Checking,,,"); u=G,opposite(v,e); if(dist[u]==1)//hai node da bi co^ dinh thi tinh toan lai chieu dai { gw,set_border_width(v,width); int width; gw,set_border_color(v,clr); color clr; gw,redraw(); set S; break; forall_nodes(v,G) point p1,p2; p1=gw,get_position(u); ERROR!! } { }//End if Style /* -Loai bo Node treo -*/ sum1=sum2=0;//Khoi phuc gia tri cu~ p2=gw,get_position(v); segment S(p1,p2); EInfo,Length=int(S,length()); forall_inout_edges(e,v) if(e) info=StringEInfo(EInfo); G,assign(e,info); }//end if /* -Loai bo Node gia */ sum1=sum1+1; //Detect: adj_nodes of it =2 if(sum1==0) //Node treo S,clear(); { forall_inout_edges(e,v) Flag=false; if(dist[u]==-1) { sam=LenCal(gw,v,u,EInfo,Length);// Tinh lai toa x[u]=sam,xcoord; y[u]=sam,ycoord; dist[u]=1; }//end if -1 zoom_to_area(gw,v); { width= gw,get_border_width(v); u=G,opposite(v,e); clr= gw,get_border_color(v); if(!S,member(u)) /* Set thong so moi */ { gw,set_border_width(v,3); S,insert(u); gw,set_border_color(v,red); sum1=sum1+1; //gw,redraw(); show_msg(gw,"\\bf\\red Floating Node,"); printf("%lf,%lf",x[u],y[u]); if(e) gw,set_border_width(v,width); Trang 193 } ERROR!! } //S,clear(); /* -*/ break; if(sum1==2) }//end if Check Kind { bool CheckAngle(GraphWin& gw) }//End for all node Flag=false; // Dung de kiem tra goc gioi han giua cac link gw,zoom_area(-7,00,-7,00,497,00,336,00); zoom_to_area(gw,v); { width= gw,get_border_width(v); /* -Kiem tra goc gioi han(>30)cho node Intersection */ clr= gw,get_border_color(v); return Flag; /* Set thong so moi */ } /* -*/ int width; gw,set_border_width(v,3); color clr; gw,set_border_color(v,red); void OutDataFile(GraphWin& gw) edge e,l; //gw,redraw(); show_msg(gw,"\\bf\\red ERROR!! Don't Care This Node,"); gw,set_border_width(v,width); { node v; FILE *f; DataNode NInfo; string info; gw,set_border_color(v,clr); int i=File_handlerRun(gw,2); bool Flag=true; if(i>0) //gw,redraw(); forall_nodes(v,G) break; { } { f=fopen(fname,"w"); if(CheckKind(v)) sum1=sum2=0;//reset { /* Node */ info=G,inf(v); /* Loai bo Node co Control bi loi */ if(NInfo,Style==1) //1,Check Intersection NInfo=CheckDataNode(info); if(NInfo,Style!=0) //Cho Node InterSection va Roundabout fprintf(f,"NODE\n"); { { node v,u; forall_in_edges(e,v) forall_in_edges(e,v) edge e; { if(e) DataNode NInfo; forall_in_edges(l,v) sum1=sum1+1; DataEdge EInfo,E2Info; if(l!=e) if(sum1

Ngày đăng: 05/10/2023, 19:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w