Hirdetés
- Bemutatkoztak a be quiet! Light Base 500 szériás, kábeleket rejtő házai
- A Chieftec néhány terméke fehér köntöst öltött
- Sokkal drágább lett az „olcsó” Tesla, mint várták
- Egy fontos tényező akadályozhatja a csúcstechnológiás chipgyártást az USA-ban?
- Visszatért a mítosz, a legenda, a világ leghasznosabb terméke!
- A Synology visszatáncolt a kötelező saját márkás HDD-től
- Házimozi haladó szinten
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen pendrive-ot vegyek?
- ThinkPad (NEM IdeaPad)
- Milyen processzort vegyek?
- Fejhallgató erősítő és DAC topik
- Milyen belső merevlemezt vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- ASUS ROG Ally
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Aktív témák
-
BaLinux
tag
Hát mondjuk ha csak kettő labdád van, akkor:
ütköznek <==> (labda1.x-labda2.x)^2+(labda1.y-labda2.y)^2 <= (labda1.r+labda2.r)^2
az ütközés kimenetele pedig a fenti egyenlőtlenség teljesülése esetén így számolható:
- van a két labda, L1 és L2, és ismertek a koordinátáik: (.x; .y)=P, sebességkomponenseik: (.vx; .vy)=V, és sugaruk: .r.
Az ütközési normálvektor: N=(L1.P-L2.P)/abs(L1.P-L2.P) (tehát normalizálom, 1 hosszú vektor az N, és az egyik kör közepébe mutat, -N meg a másik közepébe)
Ezután transzformálod a két sebességvektort az N-nel párhuzamos és merőleges komponenssű vektorrá:
L.V_N=(N.x*L.V.x+N.y*L.V.y ; -N.y*L.V.x+N.x*L.V.y)
(mindkettőre igaz) => az L1.V_N és L2.V_N vektorok ''x'' összetevője tehát most a normális irányú sebességük, ''y'' összetevője meg az erre merőleges sebességük.
Az egészet azért csináltuk, mert csak az ún. centrális sebességük változik az ütközéskör.
Fgv. táblázatból:
L1.U_N.x=((1+k)*(L1.m*L1.V_N.x + L2.m*L2.V_N.x)/(L1.m+L2.m) - k*L1.V_N)
L2.U_N.x=((1+k)*(L1.m*L1.V_N.x + L2.m*L2.V_N.x)/(L1.m+L2.m) - k*L2.V_N)
illetve
L1.U_N.y=L1.V_N.y
L2.U_N.y=L2.V_N.y
(ez maradt meg)
,
ahol az U_N vektor az új, ütközés utáni sebességvektor. Ja, itt van egy Lx.m, ami a tömegük (tőlem lehet 1 is...), k pedig az ütközési rugalmasság. (tőlem legyen 1)
Ezt most nyilván visszafelé is transzformálni kell a ''normál'' koorinátarendszerbe, tehát
L.U=(N.x*L.U_N.x-N.y*L.U_N.y ; N.y*L.U_N.x+N.x*L.U_N.y)
mindkét labdára.
Így a végső sebességeik tehát L1.U, L2.U.
Remélem érthető és nem b*sztam el valahol egy előjelet. :DD
(ezt a progim általánosabb függvényének spec paraméterezése)
[Szerkesztve] -
BaLinux
tag
De jó látni hogy van még rajtam kívül ember aki az ilyen szimulációkat szereti :)
A több labdás probléma már egy komoly dolog. Tavaly írtam egy 2d-s fizikai szimulátort c++-ban, ami támogatja a kör és poligon (konkáv is!) alapú ütközést. Egy lassan készülő kis játék fizikai motorja lesz amúgy. 2-3 hétig agyaltam rajta szüntelenül, összesen 77k kód.
A kör alapú, ami neked kell, még nem olyan bonyi, mert egyszerűen meghatározható minden labda-párra az az idő, amikor a jövőben adott aktuális sebességükkel ütközni fognak. A poligonos viszont már bonyolult, és pontatlan is, de azért működik.
Az ütközés számításához kell egy kis fizika (pl. én figyelembe veszem a tömeget, tehetetlenségi nyomatékot és rugalmasságot is).
Az ütközés csak abból áll, hogy az abban résztvevő objektumok sebessége megváltozik az adott összefüggések alapján.
A #13 hozzászólást intéző kollega által javasolt módszerrel kellene továbbvinni a programod, mert a tiéd a cos/sin miatt lassú, viszont közel ugyanolyan pontatlan, tehát nem sok előnye van.
Ha érdekel, szívesen segítek.
Aktív témák
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- exHWSW - Értünk mindenhez IS
- A Synology visszatáncolt a kötelező saját márkás HDD-től
- Házimozi haladó szinten
- BestBuy topik
- Battlefield 6
- Okos Otthon / Smart Home
- Apple iPhone 17 Pro Max – fennsík
- Fotók, videók mobillal
- Nvidia GPU-k jövője - amit tudni vélünk
- További aktív témák...
- Lenovo ThinkPad X1 Yoga Gen 3 i7 / 16GB / 512GB SSD / 2 az 1-ben érintőkijelző / WQHD IPS
- Lenovo ThinkPad T14s i7 / 32 GB RAM / 256 GB SSD / Full HD IPS
- HP EliteBook 650 G9 12. generációs i5 / 16GB RAM / 256GB SSD / FHD
- Eladó Macbook Pro mid-2019 i5 8GB RAM 256 GB tárhely 4 thunderbolt
- Lenovo ThinkPad E15 (20RD) i5 / 8 GB / 256 GB SSD / Full HD IPS
- 35" ASUS ROG Swift PG35VQ curved GAMER monitor
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 5060 Ti 16GB GAMER termékbeszámítással
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Dell Latitude 5320 - hibás kijelzők - i5 1135G7 ,16GB RAM, SSD, jó akku, számla
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest