Path: ...!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: fir Newsgroups: comp.lang.c Subject: [prog. in c] how to make stable paricles Date: Tue, 12 Nov 2024 21:36:56 +0100 Organization: i2pn2 (i2pn.org) Message-ID: <86afdace41e07eca9975d9c425207fcb89d70073@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 12 Nov 2024 20:36:57 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="2169555"; mail-complaints-to="usenet@i2pn2.org"; posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0"; User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.19 X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Mozilla-News-Host: news://i2pn2.org:119 Bytes: 3148 Lines: 65 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?