Вверх ↑
Ответов: 8886
Рейтинг: 823
#1: 2022-01-04 20:45:47 ЛС | профиль | цитата
Но чуть живы


Add(MainForm,15261923,126,147)
{
Left=100
Top=10
Width=616
Height=703
Caption="Expanding Universe"
Position=1
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(onMouseWheel)
link(onCreate,16299401:doEvent1,[])
link(onMouseWheel,15444950:doCalc,[(165,181)(165,62)])
}
Add(GL_Main,12986311,231,161)
{
Color=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(272,174)(272,209)])
link(Handle,5955581:Var1,[])
}
Add(Timer,9506849,126,203)
{
Interval=32
Enable=1
link(onTimer,8514196:doWork2,[])
}
Add(GL_GTools,771925,231,203)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,175,203)
{
OutCount=5
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,10714674:doWork1,[(200,223)(200,125)])
link(onEvent4,771925:doPopMatrix,[(207,230)(207,223)])
link(onEvent5,12986311:doFlip,[(219,237)(219,181)])
}
Add(Hub,16299401,175,161)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,12613983:doWork3,[(207,181)(207,202)])
}
Add(GL_GluTools,12198675,280,161)
{
Texture=0
}
Add(MultiElement,10714674,238,119)
{
link(onEvent1,12026341:doDraw,[])
link(Data1,5955581:Var2,[])
link(Data2,5955581:Var3,[])
}
BEGIN_SDK
Add(EditMulti,4359962,10,10)
{
EventCount=1
WorkCount=1
DataCount=2
Width=223
Height=109
link(doWork1,3276760:doRotate,[(26,16)(26,62)])
}
Add(GL_Rotate,3276760,42,56)
{
Y=1
link(onRotate,8079493:doRotate,[])
link(Angle,4359962:Data1,[(48,33)(16,33)])
}
Add(GL_Rotate,8079493,119,56)
{
X=1
link(onRotate,4359962:onEvent1,[(196,62)(196,16)])
link(Angle,4359962:Data2,[(125,33)(23,33)])
}
END_SDK
Add(GL_Perspective,3410847,280,203)
{
Fovy=25
}
Add(Gl_Begin,8902146,126,280)
{
link(onBegin,16671482:doCalcCoord,[])
}
Add(Gl_End,5982301,245,280)
{
}
Add(ChildPanel,5955581,231,77)
{
}
BEGIN_SDK
Add(EditMulti,4143791,21,21)
{
EventCount=1
VarCount=3
Width=202
Height=179
link(Var1,15601321:Handle,[(27,122)(41,122)])
link(Var2,3214445:Value,[(34,178)(48,178)])
link(Var3,11620441:Value,[(41,186)(97,186)])
}
Add(Panel,15601321,35,77)
{
Top=70
Width=600
Height=600
Point(Handle)
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(onMouseUp)
Point(onMouseDown)
Point(onMouseMove)
link(onResize,4143791:onEvent1,[(74,90)(74,27)])
link(onMouseUp,6951080:doWork1,[(81,97)(81,55)])
link(onMouseDown,6951080:doWork2,[(88,104)(88,62)])
link(onMouseMove,12459749:doCompare,[(95,111)(95,97)])
}
Add(ChanelToIndex,6951080,112,49)
{
link(onIndex,9982945:doValue,[])
}
Add(Memory,9982945,161,49)
{
Default=Integer(0)
}
Add(If_else,12459749,161,91)
{
Op2=Integer(1)
link(onTrue,3214445:doValue,[(200,97)(200,132)(32,132)(32,146)])
link(Op1,9982945:Value,[])
}
Add(Memory,3214445,42,140)
{
Point(Data)
link(onData,11620441:doValue,[])
link(Data,15601321:MouseX,[])
}
Add(Memory,11620441,91,140)
{
Point(Data)
link(Data,15601321:MouseY,[(97,124)(55,124)])
}
END_SDK
Add(Gl_Scale,9972201,329,119)
{
X=1
Y=1
Z=1
link(onScale,13854760:doColor,[])
link(X,4052765:Var2,[])
link(Y,12871601:Var2,[])
link(Z,12871601:Var3,[(349,103)])
}
Add(MathParse,15444950,329,56)
{
DataCount=1
MathStr="(%1>0)*%0*1.01 + (%1<0)*%0/1.01 + (%1=0)*%0"
Default=1
}
Add(GetDataEx,4052765,329,98)
{
link(Data,15444950:Result,[])
}
Add(GetDataEx,12871601,336,98)
{
Angle=3
link(Data,4052765:Var3,[])
}
Add(GL_Color,13854760,385,119)
{
Color=16777215
link(onColor,8902146:doBegin,[(424,125)(424,258)(116,258)(116,286)])
}
Add(GL_Vertex3D,6266290,182,322)
{
link(X,16671482:CoordX,[])
link(Y,16671482:CoordY,[])
link(Z,16671482:CoordZ,[])
}
Add(InlineCode,16671482,182,273)
{
WorkPoints=#7:doStart|11:doCalcCoord|
EventPoints=#7:onCoord|7:onError|7:onBegin|
VarPoints=#6:CoordX|6:CoordY|6:CoordZ|
DataPoints=#23:Num=Количество галактик|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|38: XYZCoord:Array of Array of double;|17: _Num:integer;|23: _X, _Y, _Z: double;|9: public|25: _data_Data:THI_Event;|53: Num:THI_Event; //Количество галактик |51: onCoord:THI_Event; //Коодинаты галактик|22: onError:THI_Event;|22: onBegin:THI_Event;|0:|51: procedure doStart(var _Data:TData; Index:word);|55: procedure doCalcCoord(var _Data:TData; Index:word);|50: procedure CoordX(var _Data:TData; Index:word);|50: procedure CoordY(var _Data:TData; Index:word);|50: procedure CoordZ(var _Data:TData; Index:word);|4:end;|0:|14:implementation|0:|30:procedure THiAsmClass.doStart;|26: var Radius, Temp: double;|21: i, j, k:integer;|6: begin|12: randomize;|37: _Num:=ReadInteger(_Data,Num,10000);|78: SetLength(XYZCoord, 6); //0,1,2 -- координаты; 3,4,5 -- скорость|51: for i:=0 to 5 do SetLength(XYZCoord[i], _Num); |15: _Num:=_Num-1;|22: for i:=0 to _Num do|9: begin|23: Radius:=random/50;|40: for j:=0 to 2 do XYZCoord[j,i]:=0;|13: repeat |36: XYZCoord[3,i]:=(2*random-1);|36: XYZCoord[4,i]:=(2*random-1);|36: XYZCoord[5,i]:=(2*random-1);|71: Temp:=sqr(XYZCoord[3,i])+sqr(XYZCoord[4,i])+sqr(XYZCoord[5,i]);|19: until Temp<1;|43: //if random<0.5 then k:=-1 else k:=1;|38: //XYZCoord[5,i]:=sqrt(1-Temp)*k; |56: for j:=3 to 5 do XYZCoord[j,i]:=XYZCoord[j,i]/200;|8: end;|37: _hi_onEvent(onBegin,0); |6: end; |1: |34:procedure THiAsmClass.doCalcCoord;|18: var i, j:integer;|6: begin|21: for i:=0 to _Num do|8: begin|44: XYZCoord[0,i]:=XYZCoord[0,i]+XYZCoord[3,i];|19: _X:=XYZCoord[0,i];|44: XYZCoord[1,i]:=XYZCoord[1,i]+XYZCoord[4,i];|19: _Y:=XYZCoord[1,i];|44: XYZCoord[2,i]:=XYZCoord[2,i]+XYZCoord[5,i];|25: _Z:=XYZCoord[2,i]; |26: _hi_onEvent(onCoord, 0); |7: end;|26: _hi_onEvent(onError,1); |5: end;|1: |29:procedure THiAsmClass.CoordX;|6:begin |32: _Data.Data_type := data_Real; |21: _Data.Rdata := _X; |4:end;|0:|29:procedure THiAsmClass.CoordY;|6:begin |32: _Data.Data_type := data_Real; |21: _Data.Rdata := _Y; |4:end;|0:|29:procedure THiAsmClass.CoordZ;|6:begin |32: _Data.Data_type := data_Real; |21: _Data.Rdata := _Z; |4:end;|2: |4:end.|
link(onCoord,6266290:doVertex,[(235,279)(235,300)(172,300)(172,328)])
link(onError,5982301:doEnd,[])
link(onBegin,10116196:doTimer,[(222,293)(222,269)(32,269)(32,237)])
link(Num,5374536:Var1,[(188,250)(83,250)])
}
Add(ChildPanel,5374536,77,196)
{
link(onEvent1,12613983:doWork2,[])
link(onEvent2,9506849:doTimer,[])
link(onEvent3,9506849:doStop,[])
}
BEGIN_SDK
Add(EditMulti,4052296,21,21)
{
EventCount=3
VarCount=1
link(Var1,10637354:Text,[(27,166)(97,166)])
}
Add(Panel,4437140,49,119)
{
Width=600
Height=70
Align=2
}
Add(Edit,10637354,91,126)
{
Left=80
Top=25
Width=85
Text="131072"
DataType=2
}
Add(Button,283438,42,35)
{
Left=345
Top=10
Caption=">>>"
link(onClick,2339162:doEvent1,[])
}
Add(Button,6218786,42,77)
{
Left=345
Top=45
Caption="II"
link(onClick,144713:doEvent1,[])
}
Add(Button,7328350,161,49)
{
Left=20
Top=25
Enabled=1
Caption="New"
Point(doEnabled)
link(onClick,4052296:onEvent1,[(207,55)(207,27)])
}
Add(ChanelToIndex,51405,119,49)
{
link(onIndex,7328350:doEnabled,[])
}
Add(Hub,144713,84,77)
{
link(onEvent1,51405:doWork2,[(109,83)(109,62)])
link(onEvent2,4052296:onEvent3,[(271,90)(271,41)])
}
Add(Hub,2339162,84,35)
{
link(onEvent1,4052296:onEvent2,[(256,41)(256,34)])
link(onEvent2,51405:doWork1,[(109,48)(109,55)])
}
END_SDK
Add(Gl_Axis,12026341,287,119)
{
link(onDraw,9972201:doScale,[])
}
Add(HubEx,12613983,112,196)
{
Angle=1
link(onEvent,16671482:doStart,[(116,279)])
}
Add(HubEx,8514196,161,203)
{
link(onEvent,1049454:doEvent1,[])
}
Add(Timer,10116196,42,231)
{
Interval=20
Enable=1
AutoStop=15
link(onTimer,8514196:doWork3,[(165,237)])
}

Переваривает до 2 млн точек
карма: 19

0