Цитата(andriano @ 19.06.2008 23:06)
Вообще же, ты бы привел структуру данных, которой описываешь объект. Пол-килобайта навскидку кажется многовато для одного объекта.
У меня в программе 3 графических модуля. Вот их нее верхушки с переменными:
const Nn1=10; dim1=3; N1=Dim1*2*Nn1; NPR=1; G_grav=6.67E-11;
var Yu,Y,D,YG:array [1..2*N1] of extended;
TPR:array [1..NPR] of extended;
M,R:array [1..Nn1] of extended;
i,ii,j,Pn1,hi,hi1,dn,n0,pp,pp1,PN,PH,BB,C,CLR,Nn,N05,dim,N:longint;
Hour,Minute,Second,Sec100:word;
sec:array [1..4] of extended;
Sm,Sm1,T,EPS,EPS1,H,P,Rr,U,Ek,E0,YY,RT0,RT,TR,t1,wd,dat,data,EUK,Xt,Yt,W:extende
d;
ch:char;
var Gd,Gm,Mx,My:integer;
Xpl,Ypl,D,N,C:longint;
Xkp,Ykp,Xkp0,Ykp0,Xp,Yp,Xc,Yc:extended;
Wxx,Wyy,Wx,Wy:array [1..2] of extended;
Xmax,Ymax,Xmin,Ymin:array [1..3] of extended;
Px,Py:array [1..2] of longint;
AT,AT0:string;
const Nn=300; dimm=4; Ntt=2;
var X,Y:array [1..Nn,1..dimm,1..Ntt] of extended;
Nc,Nt,Nt1:array [1..dimm,1..Ntt] of longint;
Dim,N,dtl,ij,J,T:longint;
AT0,AT1:string;
Ymax,Ymin,Xmax,Xmin,Wy,Wx,Wxx,Wyy,Xc,Yc:array [1..Ntt] of extended;
Xp,Yp:extended;
D,I:longint;
AT:string;
Вообще программа не просто моделирует систему из N тел, она расчитана для нахождения наилучшего времени для того чтобы сбить астероид движущийся к Земле(естественно астероид выдуманный
, но можно и реальный
). И естественно графика в программе достаточно сложная(1
универсальный модуль для построения любого числа графиков из любого количества точек(хоть миллион точек, хоть 10 миллионов), но построения ведется не вреальном времени, тоесть сначала вы передаете все точки модулю а после он только сроит. В торой модуль ведет построение тоже по точкам только в реальном времени и естественно как и предыдущий модуль автоматически масштабирует его. А вот третий модуль выводит на экран три проекции происходящего и трех мерное изображение).
Немного о переменных, наверное все знают что для того чтобы описать движение N под действием гравитационных полей друг друга надо решить систему состоящую из 2*N дифференциальных уравнений, при этом можно воспользоваться разными методами численного интегрирования(Гира, Рунг- Кутт 1-4).
Переменные которые служат для реализация Ронге Кутта 4 порядка:
const Nn=140; Количество тел
dim=3; Количество измерений(X,Y,Z)
N=Dim*2*Nn; Колличество дифференциальных уравнений
N05=Dim*Nn;
NPR=10;
var Y,D,YG:array [1..N] of extended;
TPR:array [1..NPR] of extended;
I,K1,NP:Longint;
T0,TT,TP,H1,H02,H03,H06,EPSM,X,Z,SIGMA,EPSZ,YI:extended;
Y0,D0,D02,D02X:array [1..N] of extended;
KH:boolean;
переменные для того чтобы описать тело
R[1..Nn];
M[1..Nn];
Скажу так если работать в программе без каково то не было графического интерфейса то количесво тел которые можно с моделировать равно 250.
И вот еще ты пишеш про динамическую память, как ее можно активировать в TP7,
Если я не ошибаюсь, то какую то память можно меня через глобальную директиву {$M}, это то или не то?