вроде получилось, на базе примера с форума по работе с OpenGL
Add(MainForm,4407301,14,266) { Width=722 Height=616 Caption="OpenGL_Lesson_06" BorderStyle=1 Position=1 link(onCreate,7094067:doEvent1,[]) } Add(Timer,2878705,98,364) { Interval=33 Enable=1 link(onTimer,10543810:doClear,[]) } Add(GL_Main,7235558,672,287) { Color=15780518 link(onInit,5424116:doInit,[]) link(onViewPort,14738552:doOperation,[(712,300)(712,349)]) link(Handle,1371560:Handle,[(678,271)(720,271)]) } Add(GL_GluTools,5424116,756,287) { link(onInit,1374589:doEnabled,[]) } Add(Hub,7094067,63,280) { OutCount=4 link(onEvent2,7235558:doInit,[]) link(onEvent3,7235558:doViewPort,[]) link(onEvent4,2878705:doTimer,[(87,307)(87,370)]) } Add(GL_Options,579743,840,287) { link(onEvent,2431623:doEnabled,[]) } Add(GL_GTools,10543810,140,364) { @Hint=#1:X| ClearStencil=1 Point(doClear) link(onEvent,12490666:doPushMatrix,[]) AddHint(0,-19,22,13,@Hint) } Add(GL_Options,1374589,798,287) { Flag=2 link(onEvent,579743:doEnabled,[]) } Add(GL_Light,2431623,889,287) { Diffuse=12632256 Specular=12632256 TypeSource=1 CutOff=300 Constant=2 link(onEnabled,2431623:doMove,[(931,293)(931,328)(880,328)(880,300)]) link(Point,8164179:Point3D,[]) } Add(GL_Point3D,8164179,889,245) { } Add(GL_GTools,12490666,182,364) { @Hint=#2:\/| Point(doPushMatrix) link(onEvent,13360347:doRotate,[]) AddHint(1,-18,25,13,@Hint) } Add(GL_Rotate,13360347,224,364) { @Hint=#17:Angle (угол) = 15|5:X = 1|5:Y = 1|5:Z = 1| Angle=15 Z=1 link(onRotate,9180272:doScale,[(457,370)(457,328)]) link(Angle,13608063:GetData,[]) AddHint(-129,65,97,52,@Hint) } Add(GL_GTools,3478148,609,301) { @Hint=#2:/\| Point(doPopMatrix) link(onEvent,7235558:doFlip,[]) AddHint(-2,-27,25,13,@Hint) } Add(GL_Cube,4369440,546,315) { link(onDraw,3478148:doPopMatrix,[(594,321)(594,307)]) AddHint(-4,-27,30,13,Size) } Add(Math,14738552,721,343) { OpType=3 link(onResult,5728910:doPerspective,[]) link(Op1,1371560:Width,[]) link(Op2,1371560:Height,[]) AddHint(5,47,15,13,@Hint) } Add(ChildPanelEx,1371560,714,224) { } BEGIN_SDK Add(EditMultiEx,15964187,21,21) { VarCount=#6:Handle|5:Width|6:Height| Width=83 Height=144 link(Handle,3796578:Handle,[(27,133)(48,133)]) link(Width,3796578:Width,[(34,140)(55,140)]) link(Height,3796578:Height,[(41,148)(62,148)]) } Add(Panel,3796578,42,70) { Left=95 Top=90 Width=605 Height=400 Point(Handle) Point(Width) Point(Height) } END_SDK Add(TrackBar,15959814,140,245) { Left=165 Top=515 Width=435 Max=180 Min=-180 link(onPosition,13608063:doData,[]) } Add(EventFromData,13608063,224,245) { } Add(Gl_Scale,9180272,462,322) { @Hint=#18:X=0.5 Y=0.1 Z=25.5| X=1 Y=0.1 Z=1 link(onScale,4369440:doDraw,[(520,328)(520,321)]) AddHint(-32,-24,111,13,@Hint) } Add(GL_Perspective,5728910,763,343) { Aspect=0 }
--- Добавлено в 2017-04-09 11:25:18Если у кого то есть вариант по управлению углом сразу по трем осям, то буду рад Редактировалось 1 раз(а), последний 2017-04-09 11:25:18
|