📄 main.cpp
字号:
//// pedsim - A microscopic pedestrian simulation system. // Copyright (c) 2003 - 2004 by Christian Gloor// // You can redistribute and/or modify this program under the terms of// the GNU General Public License. See copying.txt for details.// //using namespace std;#include <iostream> // cout//#include <unistd.h> // sleep, alarm, nice//#include <stdlib.h> // random
#include "agent.h"#include "tree.h"#include "main.h"#include "events.h"#include "pov.h"// globalsAgentContainer agent;TreeContainer tree;long systemtime = 0;Tevent *event;Tpov *pov;// ----------------------------------------------------// Name: main// Description: - // Introduced: chgloor Monday, December 29, 2003 10:31:59// Return value: 0// ----------------------------------------------------int main(int argc, char **argv) { cout << "simple pedestrian simulation" << endl; srand(3);
int i = 0; // trees for (i = 0; i<80; i++) { Ttree t; t.setPosition( 0+ rand()/(RAND_MAX/300) -150 , 50 + rand()/(RAND_MAX/300) -150); tree.push_back(t); } for (i = 0; i<400; i++) { Ttree t; t.setPosition( 0+ rand()/(RAND_MAX/3000) -1500 , 1600 + rand()/(RAND_MAX/3000) -1500); tree.push_back(t); } // yellow for (i = 0; i<4000; i++) { Tagent a; a.setPosition( -100 + rand()/(RAND_MAX/40) -20 , 0 + rand()/(RAND_MAX/100) -50); a.setType(0); agent.push_back(a); } // red for (i = 0; i<4000; i++) { Tagent a; a.setPosition( +100 + rand()/(RAND_MAX/40) -20 , 0 + rand()/(RAND_MAX/100) -50); a.setType(1); agent.push_back(a); } // event = new Tevent("127.0.0.1"); pov = new Tpov("output.pov"); for (int loop = 0; loop < 10; loop++) { for (TreeIterator iter = tree.begin(); iter != tree.end(); ++iter) { pov->draw_tree(iter->getid(), iter->getsize(), iter->getrotation(), iter->getx(), iter->gety()) ; // event->send_position(systemtime, iter->getid()+10000, iter->gettype(), iter->getx(), iter->gety()) ; } for (AgentIterator iter2 = agent.begin(); iter2 != agent.end(); ++iter2) { iter2->move(systemtime); if (iter2->isalive()) { // event->send_position(systemtime, iter2->getid(), iter2->gettype(), iter2->getx(), iter2->gety()) ; pov->draw_position(iter2->getid(), iter2->gettype(), iter2->getcolor(), iter2->getx(), iter2->gety(), iter2->getdirection(), iter2->getsword()) ; } else { // event->send_position(systemtime, iter2->getid(), iter2->gettype() +2, iter2->getx(), iter2->gety()) ; pov->draw_position(iter2->getid(), iter2->gettype() +2, iter2->getcolor(), iter2->getx(), iter2->gety(), iter2->getdirection(), iter2->getsword()) ; } } if ((systemtime%1000) == 999) { pov->render_frame(systemtime, true); } else { pov->render_frame(systemtime, false); // set to false if not every frame should be rendered } systemtime++; cerr << "time: " << systemtime << endl; } // sleep(1); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -