⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 行人模拟
💻 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 + -