Помогите кто разбирается в OpenGL, как сделать отрисовку нескольких планет относительно одной и той же точки. Что-б вокруг звезды летали.
Add(MainForm,2953706,147,112)
{
Width=700
Height=750
Position=1
Point(onResize)
Point(MouseX)
Point(MouseY)
link(onCreate,4791257:doEvent1,[(212,132)(212,181)])
link(onResize,4443963:doWork1,[(298,139)])
}
Add(PaintBox,5090005,350,112)
{
Width=692
Height=666
Align=5
Point(Handle)
Point(MouseX)
Point(MouseY)
Point(onMouseDown)
link(onMouseDown,10714674:doWork2,[(398,125)(398,314)])
}
Add(Hub,4791257,245,175)
{
OutCount=3
link(onEvent2,7755013:doInit,[])
link(onEvent3,4443963:doWork2,[])
}
Add(Timer,15683222,224,273)
{
Interval=10
Point(doInterval)
link(onTimer,4442276:doEvent1,[])
}
Add(GL_GTools,15697590,329,273)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,4442276,280,273)
{
OutCount=7
link(onEvent1,15697590:doClear,[])
link(onEvent2,15697590:doPushMatrix,[])
link(onEvent4,10714674:doWork1,[(354,300)(354,307)])
link(onEvent5,15697590:doPopMatrix,[(312,307)(312,293)])
link(onEvent6,7755013:doFlip,[(326,314)(326,202)])
link(onEvent7,12890407:doData,[(406,321)(406,251)])
}
Add(GL_GluTools,12198675,413,182)
{
link(onInit,1101264:doEnabled,[])
}
Add(GL_Perspective,3410847,413,231)
{
Fovy=20
}
Add(GL_Light,14989894,616,182)
{
link(Point,15609462:Point3D,[])
}
Add(GL_Options,5809249,560,182)
{
Flag=2
link(onEvent,14989894:doEnabled,[])
}
Add(GL_Options,5851269,511,182)
{
Flag=1
link(onEvent,5809249:doEnabled,[])
}
Add(GL_Options,1101264,462,182)
{
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Sphere,5536542,581,301)
{
Radius=0.4
Slices=50
Stacks=50
link(onDraw,7011543:doEvent1,[(625,307)(625,339)(338,339)(338,370)])
}
Add(GL_Color,11015715,532,301)
{
Color=65535
link(onColor,5536542:doDraw,[])
}
Add(GL_Point3D,15609462,616,133)
{
}
Add(GL_Sphere,8354190,721,413)
{
Radius=0.08
}
Add(Gl_Translate,6506827,616,413)
{
link(onTranslate,7018867:doColor,[])
link(X,4449392:Var1,[])
link(Y,4449392:Var2,[])
link(Z,4449392:Var3,[])
}
Add(GL_Rotate,15834536,567,413)
{
link(onRotate,6506827:doTranslate,[])
link(X,14563003:Var1,[])
link(Y,14563003:Var2,[])
link(Z,14563003:Var3,[])
}
Add(Counter,13547329,462,364)
{
Max=360
}
Add(Hub,7011543,350,364)
{
link(onEvent1,13547329:doNext,[])
link(onEvent2,10105515:doEnum,[(376,377)(376,409)(86,409)(86,440)])
}
Add(ArrayEnum,10105515,98,434)
{
link(onItem,9384483:doSplit,[])
link(Array,16758122:Array,[])
}
Add(StrPart,9384483,168,434)
{
Char=" "
Point(onNotFound)
link(onSplit,14982723:doSplit,[(289,440)(289,503)])
link(onPart,4104440:doSplit,[(289,447)(289,559)])
link(onNotFound,15521501:doEvent1,[])
}
Add(FormatStr,10891833,378,448)
{
DataCount=1
Mask="Невозможно создать планету с координатами:%1\r\nНекорректные данные"
link(onFString,11716802:doMessage,[])
link(Str1,10105515:Item,[(384,409)(146,409)(146,478)(104,478)])
}
Add(Message,11716802,462,448)
{
}
Add(GL_Main,7755013,357,182)
{
Color=0
Point(Fps)
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(401,195)(401,237)])
link(Handle,5090005:Handle,[])
}
Add(DoData,12890407,518,245)
{
link(onEventData,8157679:doWork1,[])
link(Data,7755013:Fps,[(524,229)(370,229)])
}
Add(StrPart,14982723,378,497)
{
Char=";"
Point(onNotFound)
link(onSplit,11729494:doSplit,[])
link(onPart,4449392:doWork1,[(488,510)(488,349)])
link(onNotFound,15521501:doEvent2,[(422,517)(422,489)(331,489)(331,461)])
}
Add(StrPart,11729494,462,497)
{
Char=";"
Point(onNotFound)
link(onSplit,4449392:doWork3,[(530,503)(530,363)])
link(onPart,4449392:doWork2,[(530,510)(530,356)])
link(onNotFound,15521501:doEvent3,[(504,517)(504,489)(331,489)(331,468)])
}
Add(Hub,15521501,343,448)
{
InCount=5
OutCount=1
link(onEvent1,10891833:doString,[])
}
Add(MultiElement,4449392,616,343)
{
link(onEvent1,3419732:doData,[(653,349)(653,384)(450,384)(450,419)])
}
BEGIN_SDK
Add(EditMulti,6069824,21,21)
{
EventCount=1
WorkCount=3
VarCount=3
Height=172
link(doWork1,14565522:doValue,[(35,27)(35,48)])
link(doWork2,8310594:doValue,[(56,34)(56,90)])
link(doWork3,14381766:doValue,[(77,41)(77,132)])
link(Var1,14565522:Value,[(27,133)(55,133)])
link(Var2,8310594:Value,[(34,155)(97,155)])
link(Var3,14381766:Value,[(41,175)(139,175)])
}
Add(Memory,14565522,49,42)
{
}
Add(Memory,8310594,91,84)
{
}
Add(Memory,14381766,133,126)
{
link(onData,1293959:doData,[(198,132)(198,83)])
}
Add(DoData,1293959,238,77)
{
link(onEventData,6069824:onEvent1,[(292,83)(292,27)])
link(Data,14615144:Value,[])
}
Add(Memory,14615144,238,28)
{
}
END_SDK
Add(MultiElement,14563003,574,350)
{
}
BEGIN_SDK
Add(EditMulti,6069824,21,21)
{
WorkCount=3
VarCount=3
Width=272
Height=172
link(doWork1,6726810:doEvent1,[(35,27)(35,48)])
link(doWork2,9767350:doEvent1,[(87,34)(87,90)])
link(doWork3,2700951:doEvent1,[(109,41)(109,132)])
link(Var1,14565522:Value,[(27,133)(146,133)])
link(Var2,8310594:Value,[(34,155)(188,155)])
link(Var3,14381766:Value,[(41,175)(230,175)])
}
Add(Memory,14565522,140,42)
{
}
Add(Memory,8310594,182,84)
{
}
Add(Memory,14381766,224,126)
{
}
Add(Hub,6726810,112,42)
{
link(onEvent1,14565522:doClear,[(133,48)(133,55)])
link(onEvent2,14565522:doValue,[(133,55)(133,48)])
}
Add(Hub,9767350,154,84)
{
link(onEvent1,8310594:doClear,[(175,90)(175,97)])
link(onEvent2,8310594:doValue,[(175,97)(175,90)])
}
Add(Hub,2700951,196,126)
{
link(onEvent1,14381766:doClear,[(217,132)(217,139)])
link(onEvent2,14381766:doValue,[(217,139)(217,132)])
}
END_SDK
Add(StrPart,4104440,378,553)
{
Char=";"
Point(onNotFound)
link(onSplit,4857923:doSplit,[])
link(onPart,14563003:doWork1,[(468,566)(468,356)])
link(onNotFound,15521501:doEvent4,[(422,573)(422,524)(331,524)(331,475)])
}
Add(StrPart,4857923,462,553)
{
Char=";"
Point(onNotFound)
link(onSplit,14563003:doWork3,[(510,559)(510,370)])
link(onPart,14563003:doWork2,[(510,566)(510,363)])
link(onNotFound,15521501:doEvent5,[(506,573)(506,527)(331,527)(331,482)])
}
Add(GL_Color,7018867,672,413)
{
Color=12632256
link(onColor,8354190:doDraw,[])
}
Add(HubEx,4443963,294,189)
{
link(onEvent,7755013:doViewPort,[])
}
Add(ChildPanel,8157679,658,245)
{
link(onEvent1,2619649:doOperation,[(702,251)(702,265)(135,265)(135,279)])
link(onEvent2,4606160:doOperation,[(702,258)(702,290)(149,290)(149,321)])
}
BEGIN_SDK
Add(EditMulti,8546208,21,21)
{
EventCount=2
WorkCount=2
VarCount=1
Height=249
link(doWork1,8008547:doString,[(53,27)(53,104)])
link(doWork2,14936589:doString,[(53,34)(53,153)])
}
Add(Image,3664806,84,35)
{
Width=426
Height=50
Align=5
ViewStyle=3
Picture=[ZIPE61D000078DAED573B9214310C35312109472026D8039073E6E990A3B4F5B902836D7DEDEED9658A82DA2A5A336ADBD2D3D3B33AEA6FDF7F16B197E65F9A7F68FE75AC9F47FC47F34F1FC5CD6EB75BB9DFEF8599FF9AD75A8703C0C111BBE3C189E8E067DC5DFBB66D7DFD07567ACF776897AE4BD7A5EBD275E9BA745DBA2E5D97AE4BD7A5EBD2F5FFEA6ADF9B751F8FF11CEBD8EE1AB7651F3FB3DDF1A364570A2BCA957BE2F63E7B8072898586AE68F09CED8FE36F53E66B1DB3322F31A8277B88039C43253045E014731A83F383EA82290C39D23B8E3F9800D00542EF82CEB75A8352064A0053E7A8ECBA00B4B77080B5879402D103C62A3B5DC1E25A53E3509D43701592B4380224B9FD590A64ABE01DEAD4BA2A0940166EF780555D90E8AC211E7E2798A25E3FF8BA2EE3392AAC89A3CE7CE04515E6CA18CE1A89B1E49143888DED322F31F4C77386CFE45F07375D1D808F4A646B695FD0C54BCAEB13020D79486BB55F1FB3009123F3C255D9240F272D6852D3C67723AD675C042843BC0C44BD18CE2FA8874B51A2E122107D10884EA8006F1E1B190E2A09663933A7A31DA5B7F272BFEED035E7A6331856151AA5236C72989821D3A0378BA0BFFFE805DE5ED0AA0B26A63F31781602A7D9985737229A8E79DB52749A3A42970D3D424A47B2280580BA2E1343DE5A56ABD0A83C28F2069E2E437E05C24011E5FB79FFD1D178298BD379918064910AE110936272DE08C47D3593DC47E2F3264712390999280F50D7A5DD5DBEB68A40384D3A29F3938D98BC83737A4ED3EA39AB70F246A5C40123392D98F5D0994E0D2326DD746238A117E2786984A66B31A6DF327E1BCDBECA6FC2BF52DF75F538F3A924A162DBF1023E402563F9032E9DD988432E2748D3D5CECC39C95263313D388FA81B010EFEF53E3621664EB289B382491BB3D3B46DFB1E122DC6A28214C802676FE1225319B377352136670B643EE961834F7F9DF828D7EF344A0FA2F4BD443C5306B1F1FB58E6BB84C4B56A62A7D427BDFDF69D767F9756CA6DBB2DA6816D3BC40E50896CE3E781ADD909F4767BD0C828F2BE945FB15BCF30]
}
Add(Panel,3833858,35,35)
{
Left=35
Top=105
Width=426
Align=2
BorderWidth=0
BevelWidth=0
}
Add(Label,214173,133,98)
{
Left=5
Top=5
Width=45
Color=15461099
Font=[Arial,9,0,0,204]
Caption="FPS:"
}
Add(FormatStr,8008547,84,98)
{
DataCount=1
Mask="FPS:%1"
link(onFString,214173:doText,[])
}
Add(Label,10856199,135,147)
{
Left=55
Top=5
Width=45
Height=19
Color=15461099
Font=[Arial,9,4,16711680,204]
Caption="Int:10"
link(onClick,2081465:doPopupHere,[])
}
Add(FormatStr,14936589,84,147)
{
DataCount=1
Mask="Int:%1"
link(onFString,10856199:doText,[])
}
Add(PopupMenu,2081465,189,147)
{
Menu=#2:+5|2:-5|
link(onClick,5330306:doEvent,[])
}
Add(IndexToChanel,5330306,238,147)
{
link(onEvent1,8546208:onEvent1,[(296,153)(296,27)])
link(onEvent2,8546208:onEvent2,[(296,160)(296,34)])
}
END_SDK
Add(Memory,16652919,147,224)
{
Default=Integer(10)
link(onData,15683222:doInterval,[(201,230)(201,293)])
}
Add(Math,2619649,147,273)
{
Op2=5
ResultType=0
link(onResult,3811096:doEvent1,[(191,279)(191,255)(107,255)(107,230)])
link(Op1,12763006:Var2,[])
}
Add(Math,4606160,161,315)
{
OpType=1
Op2=5
ResultType=0
link(onResult,3811096:doEvent2,[(205,321)(205,279)(107,279)(107,237)])
link(Op1,12763006:Var3,[(167,264)])
}
Add(GetDataEx,12763006,147,259)
{
link(Data,16652919:Value,[])
}
Add(Hub,3811096,119,224)
{
InCount=2
link(onEvent1,16652919:doValue,[])
link(onEvent2,8157679:doWork2,[(395,237)(395,258)])
}
Add(MultiElement,10714674,413,301)
{
link(onEvent1,3547845:doDraw,[])
link(Data1,5090005:MouseX,[(419,223)(370,223)])
link(Data2,5090005:MouseY,[(426,223)(377,223)])
}
BEGIN_SDK
Add(EditMulti,4359962,3,3)
{
EventCount=1
WorkCount=2
DataCount=2
Width=391
Height=172
link(doWork1,6708412:doCompare,[(19,9)(19,132)])
link(doWork2,13824406:doNext,[(54,16)(54,76)])
}
Add(GL_Rotate,3276760,224,126)
{
Y=1
link(onRotate,8079493:doRotate,[])
link(Angle,12089164:Value,[])
}
Add(GL_Rotate,8079493,315,126)
{
X=1
link(onRotate,4359962:onEvent1,[(363,132)(363,9)])
link(Angle,7733791:Value,[])
}
Add(If_else,6708412,84,126)
{
Op2=Integer(1)
link(onTrue,11680729:doData,[(142,132)(142,69)])
link(onFalse,10125040:doEvent1,[(121,139)(121,132)])
link(Op1,13824406:Count,[])
}
Add(Counter,13824406,84,70)
{
Max=1
}
Add(DoData,11680729,168,63)
{
link(onEventData,12089164:doValue,[])
link(Data,4359962:Data1,[(174,33)(9,33)])
}
Add(Memory,12089164,224,63)
{
Default=Integer(0)
link(onData,5664372:doData,[])
}
Add(DoData,5664372,266,63)
{
link(onEventData,7733791:doValue,[])
link(Data,4359962:Data2,[(272,33)(16,33)])
}
Add(Memory,7733791,315,63)
{
Default=Integer(0)
link(onData,10125040:doEvent2,[(359,69)(359,104)(135,104)(135,139)])
}
Add(DoData,5686361,175,126)
{
link(onEventData,3276760:doRotate,[])
}
Add(Hub,10125040,147,126)
{
InCount=2
OutCount=1
link(onEvent1,5686361:doData,[])
}
END_SDK
Add(StrList,16758122,84,343)
{
Strings=#11:0;1;0 0;0;1|11:0;1;0 0;0;1|
}
Add(Gl_Axis,3547845,476,301)
{
TitleScale=0.3
link(onDraw,11015715:doColor,[])
}
Add(DoData,3419732,462,413)
{
link(onEventData,15834536:doRotate,[])
link(Data,13547329:Count,[])
}
Add(InfoTip,9884484,63,322)
{
Info=#7:Планеты|
Width=71
Height=74
}
Немного о самой программе:
- Отображает FPS
Меняется интервал между обновлением, клик на индикаторе.
Можно менять обзор камеры, клик на рабочем поле - разфиксировать, повторный клик - зафиксировать



Поиск
Друзья
Администрация