[prog. in c] how to make stable paricles

Liste des GroupesRevenir à cl c  
Sujet : [prog. in c] how to make stable paricles
De : profesor.fir (at) *nospam* gmail.com (fir)
Groupes : comp.lang.c
Date : 12. Nov 2024, 21:36:56
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <86afdace41e07eca9975d9c425207fcb89d70073@i2pn2.org>
User-Agent : Mozilla/5.0 (Windows NT 10.0; WOW64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.19
see that simulation
https://www.youtube.com/watch?v=pP-uCjLp3RY
there is a group of lights/dots/balls/points (say atoms) and such fotces
are applied
1) if the ball is into wall apply a force proportional to depth of
being into wall
       point[i].vx -= H* wall_penetration_x ;
       point[i].vy -= H* wall_penetration_y ;
2) if the ball is to much close to other ball same the force related to depth of penetration is applied (though here its square)
    point[i].vx+= (dx/dist)* (n_pen*B)*(n_pen*B) /point[i].mass ;
    point[i].vy+= (dy/dist)* (n_pen*B)*(n_pen*B) /point[i].mass ;
i chose it partially conceptually - knowing a=F/m - and partially experimantally..it work wery well imo
the problem is i want to apply some ball-ball force additional to
this repeling one that would make those ball build in a kinda multi-ball
relativly stable "particles" ... and the question is what this force should be?
here above on this video the lines you see are drawed when this third force start to work.. (so teh lines arre kinda optical debug showing
how it work) i applied some but the particles that forms are much to dynamical, oscilate llike crazy then sometimas shot one of atoms out and so on
and i need a stable one
i experimented with this additional link force but not much
what i experimented was like adding link it is attraction force
that enebles when two points are closer than 1.5*link distance, which is 20 units (pixels) it is this attract force work on distance closer than
30 pixels
the force is something like
  double link_dist = 20;
   double dx = point[i].x - point[n].x;
   double dy = point[i].y - point[n].y;
   double Mi = point[i].mass;
   double dist = sqrt(dx*dx + dy*dy );
  if(dist>link_dist*1.5) return;
   double L = 1.;
   double p =  (dist - link_dist)*L;
     point[i].vx+= -(dx/dist)*(p*p)*sign(p)/point[i].mass;
     point[i].vy+= -(dy/dist)*(p*p)*sign(p)/point[i].mass;
   if(!m_toggler)
    DrawLine2d(point[i].x, point[i].y, point[n].x, point[n].y,0xffffff );
but as i said the results are to messy and i need stable little "solid bodies" i mean more "stiff" particles
some ideas as to what this link force should be?

Date Sujet#  Auteur
12 Nov 24 * [prog. in c] how to make stable paricles4fir
12 Nov 24 +- Re: [prog. in c] how to make stable paricles1fir
12 Nov 24 +- Re: [prog. in c] how to make stable paricles1fir
12 Nov 24 `- Re: [prog. in c] how to make stable paricles1fir

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal