Simulace pohybu molekul – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Simulace pohybu molekul – Pascal – Fórum – Programujte.comSimulace pohybu molekul – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
LuciusT0
Duch
24. 6. 2013   #1
-
0
-

Dobrý den,

potřebuji pomoci při sestavení programu na simulaci molekul, nevím si s tím rady.

1. Mám zadané počáteční podmínky [xi; yi], [vxi; vyi].....náhodné hodnoty (souřadnice částic uvnitř nádoby) 

2. pak mám zadaný rovnice pohybu:

  • xi(t+dt) := xi(t) + vxi (dt)
  • yi(t+dt) := yi(t) + vyi (dt)

3. srážka

  • vxi := -vxi
  • podobně náraz na vodorovnou stěnu vyi := -vyi

4. Kreslení částic (smazat starou polohu částice a nakreslit novou)

5. vrácení k bodu 2

Takhle by měl vypadat celý program, ale já to neumím naprogramovat tak, aby to fungovali a přitom dávalo smysl. předem děkuji za rady :)

Mám ještě několik poznámek k programu:

  1. poč. částic 20-30
  2. pro lepší vizuální vjem je vhodné kroky 2-4 provádět zvlášť pro každou částici, ne pro všechny najednou
  3. používat reálná čísla - teprve při konverci převést na celočíselné hodnoty 

Ještě jednou děkuji :)

Nahlásit jako SPAM
IP: 84.244.117.–
Reklama
Reklama
Mircosoft+1
Věrný člen
28. 6. 2013   #2
-
0
-

Takže kostru bych viděl nějak takhle:

připrav si pole částic, vyplň ho počátečními hodnotami
přepni se do grafického režimu (Initgraph)
 repeat
 pro každou částici:
   begin
   smaž částici (tj. vykresli ji v barvě pozadí)
   x:=x+vx;
   if (x<levá_hranice)or(x>pravá_hranice) then vx:=-vx;
   obdobně pro y
   vykresli částici viditelnou barvou
   end;
 chviličku počkej (Delay) until nějaká ukončovací podmínka, třeba Keypressed
ukonči grafický režim (Closegraph)

Odrážení jsem nenapsal úplně ideálně, odraz nastane až kousíček (0..v) za stěnou. Teoreticky by se dal najít přesný průsečík, ale asi je to zbytečná práce - nepřesnosti stejně nebudou pouhým okem viditelné. Jo, a předpokládám správně, že nechceš řešit srážky jednotlivých molekul navzájem?

Práce s grafikou závisí na tom, jaký překladač používáš. TP? FP? Delphi? Něco jiného? Výše uvedené příkazy platí pro TP a FP.

Zaokrouhlené souřadnice nemusíš ukládat, stačí zaokrouhlovat až v okamžiku kreslení: putpixel(round(x),...atd..

Částice bych uložil do pole (array). Buď jedno pole, kde každý prvek je typu record a obsahuje x, y a obě rychlosti, nebo čtyři samostatná pole pro x, y atd. (první varianta se učitelům bude líbit víc). Přístup v prvním případě např. castice[i].vx, ve druhem vx[i]. Nevím, jakým způsobem budou zadané počáteční podmínky (počet částic, jejich polohy a rychlosti) - jestli si je máš vygenerovat náhodně (funkce Random) nebo zadat ručně do zdrojáku jako konstanty nebo načíst ze souboru. Kdyžtak to nějak upřesni.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

[C#] WebCamera zachytenie pohybu — založil p-r-e-d-a-t-o-r

Změna pohybu myši — založil Majlow

Mechanizmus pohybu potvor — založil Jakub Vojáček

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý