Skocz do zawartości

[Delphi] Zabawy z polem potencjalu


Toster

Polecane posty

Ok, dla ludzi znudzonych ;) Jak ktos nie wie co to jest pole potencjalu to nic nie szkodzi ma obrazek ktory pomoze mu to zrozumiec. Program napisalem bo sie nudzilem, a pokazuje go bo wydaje mi sie ze ladnie wyglada. Do zabawy potrzeba:
1) dwa buttony na formie
2) Paintbox o wymiarach 500x500
3) ponizszy kod

[code=Delphi]
unit Unit1;

interface

uses
Windows, Messages, Sys][X[XBX[w2WD7G&27FD7G&2FGPDf&Ó6Ć72Df&4(AŃ QAŃ 4(QQQ4( ŃŃ1: TButton;
Button2: TButton;
procedure Button1CliĘ[X
NBYH[YU[Y[7B&6VGW&R'WGF$6Ć66VćFW#D&ŚV7B&fF4(AŃąŃ4(ą4(Aąąations }
end;
TMassPoint = record
x,y,vx,vy: rX[B[B[HXBKX[BVćCf f&ÓDf&ÓD75C&VąltQIA4(ŃŃl0] of TPoint;
aCount: integer;
implementation

{$R *.d_CBBYHLK]PXĘ[X
NBBBĆŚFVvW#GGFC&VŚ&VvŃ

ąą ąŹ4(AŃ
illRect(PaintBox1.Canvas.ClipRect);
randomize;
i:=0;BH
LBHH
LY[BĆUBgŁĆUBgŁ4(
4(Ńź
źbegin
ax := Random(50);
ay := Random(50);
]ZWKH^B]ZWKHH^NB\"BŁFSFf\"ŁFSF&Vvźźą4(:= t-ax;
dy := y-ay;
dd := Sqrt(dx
JJNBYH[H NBĆUBgŁĆUBgGFBĆmątąmątŹ
ź4(4(;
//obliczenie dlugosci wektora predkosci
mx := 0;
H
LBHH
LY[Bw&vGŚćR6ĆF7& amp;FśvVGŁĆUBt4(ąmąt4(ąmątSqrt(
dx*dx+dy*dy);
if mx < pole[t,y].D then mx HVWKB[BHJ[J

L
NBŁ#R&ćFCSFW#Vć&ĆVBŁG'VSŚVćC&QQQĄMQ=4)4(ąeger;
b : byte;
begin
//rysowanie pola potencjalu
H
LBHH
LY[B\"Ł&VćBĆUBćB#SRD&6A
ąĄ4(AŃ
MoveTo(t*10+5, y*10+5);
PaintBox1.Canvas.LineTo(Ro[
VWK

L
JK[
VWKJJL
JJNBVćC'7VG&F'D&6f2V6ąą14(Ńź
ź4(AŃ anvas.Ellipse(atraktor[t].x*10-10,atraktor[t].y*10-10,
]ZK
L]ZKJL
ś7V7F&PD&6f2V6Ć\"Ł6&ĆŹ4(AŃ
5QźĄIĄIĄ4(PaintBox1.Canvas.LineTo(Round(p.x+p.vx*15), Round(p.y+p.vy*1JJNBZ[K[[J[
LK[
KLK&VćBł\"&VćBł\"6WVF&WvĆFć60ŹąmIĄźIĄźtź4(.vy := p.vy + pole[Round(p.x/10), Round(p.y/10)].vy/3;
pH
BHHH
NBY VŁbfwCCFVŁCbąŃĄ4(ŃĄ4(
PaintBox1.Canvas.Pen.Color := clWhite;
PaintBox1.Can[UĘ[

K[
JJNBZ[K[[F&VćBgŁR&VćBgŁRD&6ąąĄIĄIĄIĄŹIĄ.y+2));
end;

procedure TForm1.Button2Click(Sender: TObje
NBY[BHJ[J

L
NBHHJ[J
SŚVćCŚVćB [/code]

Mam nadzieje ze podoba sie zabawka.

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

CZe
Piekne. Toster piję piwo za Twoje zdrowie:-)

Sazian
[quote] to tobie sie chyba bardzo w domu nudzi [/quote]
popatrz na to inaczaj Masz tu gotowy pomysl na gre w polu siłowym np.grawitacyjnym lub o inne naturze właściwej dla technologii rasy X Rozciagasz działanie zrodel w wiekszej planszy lub przestrzeni i pociski obdarzone masą (pole by mialo nature antymasy), pojazdy wroga itp fajnie sie beda zachowywac.. Inaczej mówiąc masz super AI. Ponaddto tu masz przepis na powierzchnie ekwipotencjalne.
PS
Gdzies w sieci błaka sie mój program z symulacja ruchu caial o masie m w polu planety X o masie M. Mozna nim w ladny sposob pokazac prawa Keplera, pr. powszechnej grawitacji, przyspioeszenie obiektow w polu grawirtacyjnym (dzialenie Jowisza jako "procy")

pozdrawiam oksal

Link do komentarza
Udostępnij na innych stronach

true true, podobna zasade uzylem w grze na pierwszy konkurs. Tam mozna bylo tworzyc punkty generujace pole grawitacyjne (rozniez pulsujace) + kazdy obiekt mial mase a co z tym idzie bezwladnosc. To co jest tutaj to bardzo prosty przypadek ze zdefiniowanym statycznym polem ale znajac podstawy zagadnienia oraz matmy mozna zrobic ten przyklad bardziej dynamiczny. np z ruchomymi atraktorami albo z atraktorami o zmiennym potencjale...

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...