ПрограммированиеФорумФизика

Solver (Солвер) (комментарии) (2 стр)

Страницы: 1 2
#15
10:44, 29 янв 2013

Здравствуйте.
Не могу создать жесткого сварного соединения... Мое сварное соединение больше похоже на болтовое соединение на которое действуют силы, пытающиеся вернуть тело в изначальное положение, при деформации соединения...
Тело-корпус машины(состоит из 2-х частей- перед и зад). К каждой части прикреплено колесо... Проблема в "прогибе корпуса"...
Сразу говорю, машинка не большая, масштаб учитывал, например радиус колеса с учетом масштабов =0.5.
Вот параметры для солвера:

static float32 timeStep = 1.0f / 30.0f;
  static int32 velocityIterations = 6;
  static int32 positionIterations = 6;

Гравитация:

static b2Vec2 gravity(0.0f, 10.0f);

Вот сам корпус:

b2BodyDef bodycar; //тут задняя часть машины
  bodycar.type=b2_dynamicBody;  
  bodycar.allowSleep;
  bodycar.angle=180;
  bodycar.position.Set(380/30, 90/30);  
  bodycar1 = world.CreateBody(&bodycar);//зад
  b2PolygonShape chassis;
      b2Vec2 vertices[7];
      vertices[0].Set(scl(0), scl(0));
      vertices[1].Set(scl(70), scl(0));
      vertices[2].Set(scl(95), scl(10));
      vertices[3].Set(scl(80), scl(35));
      vertices[4].Set(scl(65), scl(45));
      vertices[5].Set(scl(20), scl(45));
      vertices[6].Set(scl(0), scl(25));
      chassis.Set(vertices, 7);  
  fixturecars.shape = &chassis;
  fixturecars.filter.groupIndex=-1;
  fixturecars.density=0.1;
  fixturecars.friction=0.5;
  fixturecars.restitution=0.1;
  bodycar1->CreateFixture(&fixturecars);

  b2BodyDef bodycar_2;//тут передняя часть машины
  bodycar_2.type=b2_dynamicBody;  
  bodycar_2.allowSleep;
  bodycar_2.angle=180;
  bodycar_2.position.Set(380/30, 90/30);//смещаем перед машиной для дальныйшего трансформа)))
  bodycar2 = world.CreateBody(&bodycar_2);//перед
  b2PolygonShape chassis2;
      b2Vec2 vertices2[6];
      vertices2[0].Set(scl(5), scl(0));
      vertices2[1].Set(scl(40), scl(0));
      vertices2[2].Set(scl(40), scl(25));
      vertices2[3].Set(scl(5), scl(20));
      vertices2[4].Set(scl(0), scl(15));
      vertices2[5].Set(scl(0), scl(5));
      chassis2.Set(vertices2, 6);  
  fixturecars2.shape = &chassis2;
  fixturecars2.filter.groupIndex=-1;
  fixturecars2.density=0.05;
  fixturecars2.friction=0.5;
  fixturecars2.restitution=0.1;
  bodycar2->CreateFixture(&fixturecars2);

b2WeldJointDef ccn;// состыковка частей (переда и зада) машины!!! низ
  ccn.bodyA=bodycar1;// сперва зад
  ccn.bodyB=bodycar2;// перед
  ccn.localAnchorA=b2Vec2(0,0);
  ccn.localAnchorB=b2Vec2(40.0/30.0,0);
  ccn.collideConnected=1;
  ccn.frequencyHz=5;
  ccn.dampingRatio=0;//пробовал и 0 и 1
  world.CreateJoint(&ccn);

Что не так с этим сварным соединением????

#16
14:53, 29 янв 2013

создавай отдельную тему в разделе "физика" с пометкой box2d

Страницы: 1 2
ПрограммированиеФорумФизика

Тема в архиве.