ответ столкновения сегмента и коробки - PullRequest
0 голосов
/ 09 апреля 2011

Я разрабатываю движок моделирования на основе Verlet в обработке (аналогично Java). У меня есть некоторые проблемы с 2 частицами, соединенными ограничением палки и столкновением с коробкой. У меня есть код, который обнаруживает столкновение, но я не знаю, как сделать реалистичный ответ ...

Вот мой код:

public void colisionStickCamilla(){
    //Point of the box
      PVector vo = new PVector(width/2,height,0);

      for(int i = 0;i<constraints.size();i++){
       Stick st = (Stick) constraints.get(i);
       Sphere s1 = st.gets1();
       Sphere s2 = st.gets2();
       //Particle's psoitions
       PVector v1 = s1.getVector();
       PVector v2 = s2.getVector();

       //Intersection with the upper part of the box
       PVector inter = interseccionPlano(new PVector(width/2,height+50,0),new PVector(0,-1,0),v1,v2);

       //Restricting to the limited plane
       if(inter.x > width/2-50 && inter.x < width/2+50  && inter.dist(new PVector(-1,-1,-1))!= 0){
         //Do some response to colision
         println("colision");

        float dist1 = v1.dist(inter);
        float dist2 = v2.dist(inter);
        if(dist1<dist2){
        //Previous position
           PVector posAnt = s1.getPosicionAnterior();
           PVector mov = v1.get();
           mov.sub(posAnt);
           mov.normalize();
           v1.sub(mov);
           s1.setPosicionAnterior(v1);
        }
        else{
          PVector posAnt = s2.getPosicionAnterior();
          PVector mov = v2.get();
          mov.sub(posAnt);
          mov.normalize();
          v2.sub(mov);
          s2.setPosicionAnterior(v2);
        }
}

}  
}
...