public static Car createCar(Pose pose, Physics ph) { // рожаем машину Car car; var p = new CarParams(); p.InitDefault(); p.h = 2.5f; p.h_base = 2f; car = new Car(p, 0); car.Create(ph, pose); return car; }
private void Form1_Load(object sender, EventArgs e) { //инциализируем отрисовку и физику gh = new GraphicsHelper(pictureBox1); ghover = new GraphicsHelper(pictureBoxOverlay); ph = new Physics(); Vec2 target = new Vec2(75F, 6f); //Координаты конечной точки // рожаем машину var p = new CarParams(); p.InitDefault(); //Задает машине параметры по умолчанию p.h = 2.5f; //Поправляем форму машинки p.h_base = 2f; var ps = new Pose() { xc = 5, yc = 15, angle_rad = 30 * Helper.angle_to_rad }; //Задаем начальное положение машины car = new Car(p, 0); car.Create(ph, ps); //создание агента и среды carAgent = new LICStreeAgent(ps,target); pictureBox2.Image = new Bitmap(pictureBox2.Width, pictureBox2.Height); env = new Environment(ph, car, target,pictureBox2); //создание объектов среды //ВАЖНО!!! -- в каком порядке объекты создаются, в таком они и отрисовываются, поэтому в первую очередь создаются объекты заднего плана. //занятно...-- НЕсамообучающийся по картинке агент ооочень туго переваривает динамические препятствия. Хотя, всё же, переваривает. env.CreateRectZone(new Pose { xc = 30f, yc = 23f, angle_rad = 45 * k_PI }, new Vec2(15f, 25f), 2f); env.CreateRectZone(new Pose { xc = 70f, yc = 20f, angle_rad = 45 * k_PI }, new Vec2(10f, 5f), 3f); env.CreateWall( new Pose { xc = 25f, yc = 17f, angle_rad = 20 * k_PI },new Vec2(2f, 10f)); env.CreateWall(new Pose { xc = 20f, yc = 35f, angle_rad = 35 * k_PI }, new Vec2(10f, 10f)); env.CreateWall(new Pose { xc = 40f, yc = 10f, angle_rad = 35 * k_PI }, new Vec2(40f, 1f)); env.CreateWall( new Pose { xc = 55f, yc = 30f, angle_rad = 100 * k_PI },new Vec2(2f, 10f)); env.CreateWall(new Pose { xc = 65f, yc = 45f, angle_rad = 0 * k_PI }, new Vec2(15f, 15f)); env.CreateWall(new Pose { xc = 25f, yc = 25f, angle_rad = -195 * k_PI }, new Vec2(20f, 1f)); env.CreateWall(new Pose { xc = 50f, yc = 20f, angle_rad = 105 * k_PI }, new Vec2(2f, 7f)); env.CreateWall(new Pose { xc = 58f, yc = 18f, angle_rad = 45 * k_PI }, new Vec2(10f, 5f)); env.CreateWall(new Pose { xc = pictureBox1.Width/20f, yc = pictureBox1.Height/10f, angle_rad = 90 * k_PI }, new Vec2(1f, 10000f)); env.CreateWall(new Pose { xc = pictureBox1.Width / 20f, yc = 0/10f, angle_rad = 90 * k_PI }, new Vec2(1f, 10000f)); env.CreateWall(new Pose { xc = pictureBox1.Width / 10f, yc = pictureBox1.Height / 20f, angle_rad = 0 * k_PI }, new Vec2(1f, 10000f)); env.CreateWall(new Pose { xc = 0/10f, yc = pictureBox1.Height / 20f, angle_rad = 0 * k_PI }, new Vec2(1f, 10000f)); //env.CreateCircle(new Pose { xc = 25f, yc = 20f, angle_rad = -10 * k_PI }, 3, 10); //env.CreateFire(new Pose { xc = 0f, yc = 0f, angle_rad = -10 * k_PI },5); }
public Car createCar(Pose pose) { var pars = new CarParams(); pars.InitDefault(); pars.h = 2.5f; pars.h_base = 2f; return createCar(pose, pars); }