Вверх ↑
Этот топик читают: Гость
Ответов: 62
Рейтинг: 0
#1: 2017-01-09 10:36:28 ЛС | профиль | цитата
При изменении колесом мыши zoom в PainBox обрезается рисунок, хотя сам размер PainBox больше. Подскажите , как исправить. Спасибо.[scroll=]
Add(TrackBar,12629519,644,154)
{
Left=340
Top=395
Width=230
Height=15
Visible=1
Min=1
Position=1
ThumbLength=10
Point(doSetFocus)
link(onPosition,8296383:doEvent1,[])
}
Add(MainForm,15261923,238,273)
{
Left=20
Top=105
Width=1317
Height=595
Ctl3D=0
WinStyle=3
WindowsState=2
MouseCapture=0
Position=1
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(onMouseMove)
link(onCreate,16299401:doEvent1,[])
link(onMouseMove,13233314:In,[])
}
Add(GL_Main,12986311,462,287)
{
Color=12639424
TwoSide=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[])
link(Handle,5517251:Handle,[])
}
Add(Timer,9506849,392,336)
{
Interval=10
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,497,336)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,434,336)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,8079493:doRotate,[(465,356)(465,398)])
link(onEvent4,771925:doPopMatrix,[(486,363)(486,356)])
link(onEvent5,12986311:doFlip,[(455,370)(455,307)])
}
Add(Hub,16299401,357,287)
{
OutCount=5
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,8428433:In,[])
link(onEvent4,12473697:In,[])
link(onEvent5,9506849:doTimer,[(385,321)(385,342)])
}
Add(GL_Perspective,3410847,511,294)
{
Aspect=2
Fovy=30
}
Add(GL_Point3D,7772462,728,238)
{
Y=1
Z=1
}
Add(GL_Options,15876912,637,287)
{
link(onEvent,13370757:doEnabled,[])
}
Add(GL_Rotate,8079493,567,392)
{
Angle=30
Y=200
link(onRotate,858408:doTranslate,[])
link(Angle,3291853:Position,[])
}
Add(TrackBar,3291853,567,343)
{
Left=70
Top=380
Width=15
Height=175
Max=360
Position=30
Kind=1
ThumbLength=10
link(onPosition,3291853:doPosition2,[(610,349)(610,332)(555,332)(555,356)])
}
Add(PaintBox,5517251,455,154)
{
Left=115
Top=5
Width=1325
Height=555
Color=16777215
Ctl3D=0
Layout="horiz1"
Point(Handle)
Point(MouseX)
Point(MouseY)
Point(doSendToBack)
Point(doBringToFront)
Point(onMouseWheel)
Point(onMouseMove)
Point(onMouseDown)
Point(onMouseUp)
link(onMouseMove,12629519:doSetFocus,[])
link(onMouseDown,15176481:doCompare,[(503,181)(503,97)])
link(onMouseUp,659226:doStop,[(561,188)(561,104)])
}
Add(GL_Point3D,10506615,1085,462)
{
link(X,7416995:Part1,[])
link(Y,7416995:Part2,[])
link(Z,7416995:Part3,[])
}
Add(GL_Point3D,5206949,1106,462)
{
link(X,7416995:Part4,[])
link(Y,7416995:Part5,[])
link(Z,7416995:Part6,[])
}
Add(Gl_Translate,858408,616,392)
{
X=-3
Y=-1.2
link(onTranslate,5852894:doDraw,[])
}
Add(Gl_Scale,683218,714,392)
{
X=0.001
Y=0.001
Z=0.001
link(onScale,9392691:doColor,[])
link(X,15114739:Var1,[(720,369)])
link(Y,15114739:Var2,[])
link(Z,15114739:Var3,[(734,369)])
}
Add(StrList,2315546,1015,308)
{
Strings=#19:0/60/580/2000/0/580|18:0/76/600/2000/60/0|22:0/2400/600/2000/2384/0|18:0/2384/600/16/76/0|23:1984/2384/600/2000/76/0|
}
Add(ArrayEnum,12642073,1029,399)
{
link(onItem,7416995:doSplit,[])
link(Array,2315546:Array,[])
}
Add(GL_GluTools,12198675,553,287)
{
Texture=0
link(onInit,5809249:doEnabled,[])
}
Add(GL_Options,5809249,595,287)
{
Flag=2
link(onEvent,15876912:doEnabled,[])
}
Add(GL_Cube2,15959241,1092,546)
{
link(Point1,10506615:Point3D,[(1098,520)(1091,520)])
link(Point2,5206949:Point3D,[(1105,520)(1112,520)])
}
Add(MultiStrPart,7416995,1085,399)
{
Char="/"
Count=6
link(onSplit,15959241:doDraw,[(1195,405)(1195,593)(1060,593)(1060,552)])
}
Add(GL_Color,9392691,777,392)
{
Color=12632256
link(onColor,15952797:doEvent,[])
}
Add(GL_Light,14665421,728,287)
{
Ambient=8421504
Diffuse=12632256
Specular=8388608
link(onEnabled,14665421:doMove,[(780,293)(780,332)(718,332)(718,300)])
link(Point,7772462:Point3D,[])
}
Add(GL_Options,13370757,679,287)
{
Flag=1
link(onEvent,14665421:doEnabled,[])
}
Add(LineBreak,12757493,861,315)
{
Caption="1"
link(Out,16564429:doEvent1,[])
Primary=[8428433,-462,-14]
}
Add(ChildGroupBox,10286362,945,315)
{
link(onEvent1,2411833:doNext,[(991,321)(991,301)(828,301)(828,349)])
}
BEGIN_SDK
Add(EditMulti,16371112,0,0)
{
EventCount=3
WorkCount=1
Width=790
Height=354
}
Add(GroupBox,11651533,35,105)
{
Top=5
Width=113
Height=365
Color=-16777192
Ctl3D=0
Layout="parent.horiz1"
HeightScale=30
Caption=""
}
Add(Button,14369264,700,7)
{
Left=10
Top=290
Width=80
Height=40
link(onClick,16371112:onEvent1,[(761,13)(761,6)])
}
END_SDK
Add(Gl_Axis,5852894,665,392)
{
link(onDraw,683218:doScale,[])
}
Add(Math,11205482,644,203)
{
OpType=3
Op2=1000
link(Op1,12629519:Position,[])
}
Add(Hub,8296383,693,154)
{
link(onEvent1,12629519:doPosition2,[(720,160)(720,136)(632,136)(632,167)])
link(onEvent2,11205482:doOperation,[(720,167)(720,195)(632,195)(632,209)])
}
Add(LineBreak,15562629,644,245)
{
Caption="Масштаб"
Type=1
link(Data,11205482:Result,[])
Primary=[5416912,77,98]
}
Add(GetDataEx,15114739,721,364)
{
link(Data,5416912:Var,[])
}
Add(LineBreak,13053577,595,154)
{
Caption="2"
link(Out,12629519:doPosition,[])
Primary=[12473697,-196,154]
}
Add(Hub,16564429,917,315)
{
InCount=2
OutCount=1
link(onEvent1,10286362:doWork1,[])
}
Add(LineBreak,15265230,861,322)
{
Caption="3"
link(Out,16564429:doEvent2,[])
Primary=[13233314,-567,-21]
}
Add(Label,14672857,525,224)
{
Left=5
Top=425
Width=65
Height=30
}
Add(If_else,15176481,518,91)
{
Op1=Integer(0)
link(onTrue,659226:doTimer,[])
}
Add(Timer,659226,574,91)
{
Interval=10
Enable=1
link(onTimer,327499:doStrCat,[(620,97)(620,203)(457,203)(457,230)])
}
Add(GL_PolygonMode,2724116,910,399)
{
Side=2
Mode=1
link(onPolygonMode,2128545:doWork2,[])
}
Add(GL_PolygonMode,6287378,910,357)
{
Side=2
Mode=2
link(onPolygonMode,2128545:doWork1,[(963,363)])
}
Add(Counter,2411833,840,343)
{
Max=1
}
Add(IndexToChanel,15952797,840,392)
{
Point(Index)
link(onEvent1,6287378:doPolygonMode,[(883,398)(883,363)])
link(onEvent2,2724116:doPolygonMode,[])
link(Index,2411833:Count,[])
}
Add(HubEx,2128545,959,399)
{
link(onEvent,12642073:doEnum,[])
}
Add(StrCat,327499,469,224)
{
link(onStrCat,14672857:doText,[])
link(Str1,5517251:MouseX,[])
link(Str2,5517251:MouseY,[])
}
Add(HBoxLayout,2717337,217,126)
{
Name="horiz1"
Space=3
Padding=3
Layout=""
}


[/scroll]
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8887
Рейтинг: 823
#2: 2017-01-09 13:13:05 ЛС | профиль | цитата
buchkov, да всё работает
схема


Add(MainForm,15261923,98,252)
{
Width=939
Height=500
Ctl3D=0
WinStyle=3
MouseCapture=0
Position=1
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(onMouseWheel)
link(onCreate,16299401:doEvent1,[])
link(onMouseWheel,11527075:doCalc,[(137,286)(137,90)])
}
Add(GL_Main,12986311,280,266)
{
Color=12639424
TwoSide=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[])
link(Handle,7623905:Handle,[(286,257)(293,257)])
}
Add(Timer,9506849,189,315)
{
Interval=10
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,280,315)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,231,315)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,8079493:doRotate,[(256,335)(256,160)])
link(onEvent4,771925:doPopMatrix,[(272,342)(272,335)])
link(onEvent5,12986311:doFlip,[(263,349)(263,286)])
}
Add(Hub,16299401,154,266)
{
OutCount=5
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,9506849:doTimer,[(179,286)(179,321)])
}
Add(GL_Perspective,3410847,329,273)
{
Aspect=2
Fovy=30
}
Add(GL_Point3D,7772462,546,217)
{
Y=1
Z=1
}
Add(GL_Options,15876912,455,266)
{
link(onEvent,13370757:doEnabled,[])
}
Add(GL_Rotate,8079493,315,154)
{
Angle=30
Y=200
link(onRotate,858408:doTranslate,[])
link(Angle,3048951:Position,[])
}
Add(GL_Point3D,10506615,805,224)
{
link(X,7416995:Part1,[(811,201)(818,201)])
link(Y,7416995:Part2,[(818,208)(825,208)])
link(Z,7416995:Part3,[(825,215)(832,215)])
}
Add(GL_Point3D,5206949,840,224)
{
link(X,7416995:Part4,[(846,215)(839,215)])
link(Y,7416995:Part5,[(853,208)(846,208)])
link(Z,7416995:Part6,[(860,201)(853,201)])
}
Add(Gl_Translate,858408,406,154)
{
X=-3
Y=-1.2
link(onTranslate,5852894:doDraw,[])
}
Add(Gl_Scale,683218,504,154)
{
X=1
Y=1
Z=1
link(onScale,9392691:doColor,[])
link(X,15114739:Var1,[(510,145)])
link(Y,15114739:Var2,[])
link(Z,15114739:Var3,[(524,145)])
}
Add(StrList,2315546,742,105)
{
Strings=#19:0/60/580/2000/0/580|18:0/76/600/2000/60/0|22:0/2400/600/2000/2384/0|18:0/2384/600/16/76/0|23:1984/2384/600/2000/76/0|
}
Add(ArrayEnum,12642073,756,161)
{
link(onItem,7416995:doSplit,[])
link(Array,2315546:Array,[])
}
Add(GL_GluTools,12198675,371,266)
{
Texture=0
link(onInit,5809249:doEnabled,[])
}
Add(GL_Options,5809249,413,266)
{
Flag=2
link(onEvent,15876912:doEnabled,[])
}
Add(GL_Cube2,15959241,819,273)
{
link(Point1,10506615:Point3D,[(825,268)(811,268)])
link(Point2,5206949:Point3D,[(832,268)(846,268)])
}
Add(MultiStrPart,7416995,812,161)
{
Char="/"
Count=6
link(onSplit,15959241:doDraw,[(865,167)(865,153)(795,153)(795,279)])
}
Add(GL_Color,9392691,567,154)
{
Color=12632256
link(onColor,15952797:doEvent,[])
}
Add(GL_Light,14665421,546,266)
{
Ambient=8421504
Diffuse=12632256
Specular=8388608
link(onEnabled,14665421:doMove,[(585,272)(585,286)(536,286)(536,279)])
link(Point,7772462:Point3D,[])
}
Add(GL_Options,13370757,497,266)
{
Flag=1
link(onEvent,14665421:doEnabled,[])
}
Add(Gl_Axis,5852894,455,154)
{
link(onDraw,683218:doScale,[])
}
Add(Math,11205482,511,91)
{
OpType=3
Op2=10000
Default=0.0001
}
Add(GetDataEx,15114739,511,140)
{
link(Data,11205482:Result,[])
}
Add(GL_PolygonMode,2724116,679,161)
{
Side=2
Mode=1
link(onPolygonMode,2128545:doWork2,[])
}
Add(GL_PolygonMode,6287378,679,119)
{
Side=2
Mode=2
link(onPolygonMode,2128545:doWork1,[(732,125)])
}
Add(Counter,2411833,630,91)
{
Max=1
}
Add(IndexToChanel,15952797,630,154)
{
Point(Index)
link(onEvent1,6287378:doPolygonMode,[(673,160)(673,125)])
link(onEvent2,2724116:doPolygonMode,[])
link(Index,2411833:Count,[])
}
Add(HubEx,2128545,728,161)
{
link(onEvent,12642073:doEnum,[])
}
Add(Button,5764460,581,91)
{
Left=15
Top=100
Width=80
Height=40
link(onClick,2411833:doNext,[])
}
Add(Image,7623905,280,217)
{
Left=110
Width=805
Height=460
Point(Handle)
Point(onMouseWheel)
}
Add(ScrollBar,14431264,462,91)
{
Left=75
Top=170
Width=15
Height=165
Max=100
Min=1
Position=1
Kind=1
link(onPosition,3171973:doWork2,[])
}
Add(MathParse,11527075,385,84)
{
DataCount=1
MathStr="%0 + %1/120"
Default=1
link(onResult,9849935:doEvent1,[])
}
Add(Hub,9849935,434,84)
{
link(onEvent1,3171973:doWork1,[(501,90)])
link(onEvent2,14431264:doPosition,[])
}
Add(HubEx,3171973,497,91)
{
link(onEvent,11205482:doOperation,[])
}
Add(ScrollBar,3048951,315,105)
{
Left=5
Top=170
Width=15
Height=165
Max=180
Min=-180
Position=30
Kind=1
}

карма: 19

0
Ответов: 2193
Рейтинг: 673
#3: 2017-01-09 15:47:58 ЛС | профиль | цитата
Леонид, объяснили бы лучше, зачем ТС рабочая схема если ему нужно знать почему не работает.
buchkov, в вашей схеме обрезается рисунок, так как вначале до того как элемент слой (HBoxLayout: Горизонтальный слой) растянул на весь экран, произошло событие onCreate у формы (MainForm) и GL_Main установил окно вывода и его размер (doViewPort). Вам нужно задействовать onResize формы(MainForm) или PaintBox-а, чтобы заново выставить размер(doViewPort).
Должно работать правильно. Надеюсь понятно объяснил. Если что не понятно спрашивайте.
Вот ваша схема с правкой (добавлена одна связь):
схемка


Add(TrackBar,12629519,679,175)
{
Left=340
Top=395
Width=230
Height=15
Visible=1
Min=1
Position=1
ThumbLength=10
Point(doSetFocus)
link(onPosition,8296383:doEvent1,[])
}
Add(MainForm,15261923,273,294)
{
Left=20
Top=105
Width=1317
Height=595
Ctl3D=0
WinStyle=3
WindowsState=2
MouseCapture=0
Position=1
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(onMouseMove)
link(onCreate,16299401:doEvent1,[])
link(onMouseMove,13233314:In,[])
}
Add(GL_Main,12986311,497,308)
{
Color=12639424
TwoSide=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[])
link(Handle,5517251:Handle,[])
}
Add(Timer,9506849,427,357)
{
Interval=10
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,532,357)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,469,357)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,8079493:doRotate,[(500,377)(500,419)])
link(onEvent4,771925:doPopMatrix,[(521,384)(521,377)])
link(onEvent5,12986311:doFlip,[(490,391)(490,328)])
}
Add(Hub,16299401,392,308)
{
OutCount=5
link(onEvent1,12986311:doInit,[])
link(onEvent2,2105625:doWork2,[])
link(onEvent3,8428433:In,[])
link(onEvent4,12473697:In,[])
link(onEvent5,9506849:doTimer,[(420,342)(420,363)])
}
Add(GL_Perspective,3410847,546,315)
{
Aspect=2
Fovy=30
}
Add(GL_Point3D,7772462,763,259)
{
Y=1
Z=1
}
Add(GL_Options,15876912,672,308)
{
link(onEvent,13370757:doEnabled,[])
}
Add(GL_Rotate,8079493,602,413)
{
Angle=30
Y=200
link(onRotate,858408:doTranslate,[])
link(Angle,3291853:Position,[])
}
Add(TrackBar,3291853,602,364)
{
Left=70
Top=380
Width=15
Height=175
Max=360
Position=30
Kind=1
ThumbLength=10
link(onPosition,3291853:doPosition2,[(645,370)(645,353)(590,353)(590,377)])
}
Add(PaintBox,5517251,490,175)
{
Left=115
Top=5
Width=1325
Height=555
Color=16777215
Ctl3D=0
Layout="horiz1"
Point(Handle)
Point(MouseX)
Point(MouseY)
Point(doSendToBack)
Point(doBringToFront)
Point(onMouseWheel)
Point(onMouseMove)
Point(onMouseDown)
Point(onMouseUp)
Point(onResize)
link(onMouseMove,12629519:doSetFocus,[])
link(onMouseDown,15176481:doCompare,[(538,202)(538,118)])
link(onMouseUp,659226:doStop,[(596,209)(596,125)])
link(onResize,2105625:doWork1,[(534,216)(534,235)(473,235)])
}
Add(GL_Point3D,10506615,1120,483)
{
link(X,7416995:Part1,[])
link(Y,7416995:Part2,[])
link(Z,7416995:Part3,[])
}
Add(GL_Point3D,5206949,1141,483)
{
link(X,7416995:Part4,[])
link(Y,7416995:Part5,[])
link(Z,7416995:Part6,[])
}
Add(Gl_Translate,858408,651,413)
{
X=-3
Y=-1.2
link(onTranslate,5852894:doDraw,[])
}
Add(Gl_Scale,683218,749,413)
{
X=0.001
Y=0.001
Z=0.001
link(onScale,9392691:doColor,[])
link(X,15114739:Var1,[(755,390)])
link(Y,15114739:Var2,[])
link(Z,15114739:Var3,[(769,390)])
}
Add(StrList,2315546,1050,329)
{
Strings=#19:0/60/580/2000/0/580|18:0/76/600/2000/60/0|22:0/2400/600/2000/2384/0|18:0/2384/600/16/76/0|23:1984/2384/600/2000/76/0|
}
Add(ArrayEnum,12642073,1064,420)
{
link(onItem,7416995:doSplit,[])
link(Array,2315546:Array,[])
}
Add(GL_GluTools,12198675,588,308)
{
Texture=0
link(onInit,5809249:doEnabled,[])
}
Add(GL_Options,5809249,630,308)
{
Flag=2
link(onEvent,15876912:doEnabled,[])
}
Add(GL_Cube2,15959241,1127,567)
{
link(Point1,10506615:Point3D,[(1133,541)(1126,541)])
link(Point2,5206949:Point3D,[(1140,541)(1147,541)])
}
Add(MultiStrPart,7416995,1120,420)
{
Char="/"
Count=6
link(onSplit,15959241:doDraw,[(1230,426)(1230,614)(1095,614)(1095,573)])
}
Add(GL_Color,9392691,812,413)
{
Color=12632256
link(onColor,15952797:doEvent,[])
}
Add(GL_Light,14665421,763,308)
{
Ambient=8421504
Diffuse=12632256
Specular=8388608
link(onEnabled,14665421:doMove,[(815,314)(815,353)(753,353)(753,321)])
link(Point,7772462:Point3D,[])
}
Add(GL_Options,13370757,714,308)
{
Flag=1
link(onEvent,14665421:doEnabled,[])
}
Add(LineBreak,8444719,896,336)
{
Caption="1"
link(Out,16564429:doEvent1,[])
Primary=[8428433,-462,-14]
}
Add(ChildGroupBox,10286362,980,336)
{
link(onEvent1,2411833:doNext,[(1026,342)(1026,322)(863,322)(863,370)])
}
BEGIN_SDK
Add(EditMulti,16371112,0,0)
{
EventCount=3
WorkCount=1
Width=790
Height=354
}
Add(GroupBox,11651533,35,105)
{
Top=5
Width=113
Height=365
Color=-16777192
Ctl3D=0
Layout="parent.horiz1"
HeightScale=30
Caption=""
}
Add(Button,14369264,700,7)
{
Left=10
Top=290
Width=80
Height=40
link(onClick,16371112:onEvent1,[(761,13)(761,6)])
}
END_SDK
Add(Gl_Axis,5852894,700,413)
{
link(onDraw,683218:doScale,[])
}
Add(Math,11205482,679,224)
{
OpType=3
Op2=1000
link(Op1,12629519:Position,[])
}
Add(Hub,8296383,728,175)
{
link(onEvent1,12629519:doPosition2,[(755,181)(755,157)(667,157)(667,188)])
link(onEvent2,11205482:doOperation,[(755,188)(755,216)(667,216)(667,230)])
}
Add(LineBreak,2695010,679,266)
{
Caption="Масштаб"
Type=1
link(Data,11205482:Result,[])
Primary=[5416912,77,98]
}
Add(GetDataEx,15114739,756,385)
{
link(Data,5416912:Var,[])
}
Add(LineBreak,1233583,630,175)
{
Caption="2"
link(Out,12629519:doPosition,[])
Primary=[12473697,-196,154]
}
Add(Hub,16564429,952,336)
{
InCount=2
OutCount=1
link(onEvent1,10286362:doWork1,[])
}
Add(LineBreak,11096773,896,343)
{
Caption="3"
link(Out,16564429:doEvent2,[])
Primary=[13233314,-567,-21]
}
Add(Label,14672857,560,245)
{
Left=5
Top=425
Width=65
Height=30
}
Add(If_else,15176481,553,112)
{
Op1=Integer(0)
link(onTrue,659226:doTimer,[])
}
Add(Timer,659226,609,112)
{
Interval=10
Enable=1
link(onTimer,327499:doStrCat,[(655,118)(655,224)(492,224)(492,251)])
}
Add(GL_PolygonMode,2724116,945,420)
{
Side=2
Mode=1
link(onPolygonMode,2128545:doWork2,[])
}
Add(GL_PolygonMode,6287378,945,378)
{
Side=2
Mode=2
link(onPolygonMode,2128545:doWork1,[(998,384)])
}
Add(Counter,2411833,875,364)
{
Max=1
}
Add(IndexToChanel,15952797,875,413)
{
Point(Index)
link(onEvent1,6287378:doPolygonMode,[(918,419)(918,384)])
link(onEvent2,2724116:doPolygonMode,[])
link(Index,2411833:Count,[])
}
Add(HubEx,2128545,994,420)
{
link(onEvent,12642073:doEnum,[])
}
Add(StrCat,327499,504,245)
{
link(onStrCat,14672857:doText,[])
link(Str1,5517251:MouseX,[])
link(Str2,5517251:MouseY,[])
}
Add(HBoxLayout,2717337,252,147)
{
Name="horiz1"
Space=3
Padding=3
Layout=""
}
Add(HubEx,2105625,469,315)
{
link(onEvent,12986311:doViewPort,[])
}
карма: 10

1
Голосовали:buchkov
Ответов: 9906
Рейтинг: 351
#4: 2017-01-09 16:38:40 ЛС | профиль | цитата
sla8a писал(а):
если ему нужно знать почему не работает
Может ему следует знать, что для использования колеса следует использовать onMouseWheel

Между прочим, это можно увидеть из схемы Леонид-а.
Но не из Вашей, sla8a.

Редактировалось 1 раз(а), последний 2017-01-09 16:42:17
карма: 9

0
Ответов: 2193
Рейтинг: 673
#5: 2017-01-09 17:01:20 ЛС | профиль | цитата
Galkov, вы вообще сейчас о чем?
Galkov писал(а):
Может ему следует знать, что для использования колеса следует использовать onMouseWheel?
А с чего вы взяли что он этого не знает? В его схеме проблема не в этом.
Galkov писал(а):
Между прочим, это можно увидеть из схемы Леонид-а.
А вас не смущает что схема у Леонида не на весь экран как у ТС, а проблема у ТС именно в этом.
Galkov писал(а):
Но не из Вашей, sla8a.

Вы хоть мой пост с описанием проблемы и ее решением читали? И где вы вообще тут мою схему увидели?

Редактировалось 3 раз(а), последний 2017-01-09 17:19:17
карма: 10

0
Ответов: 2193
Рейтинг: 673
#6: 2017-01-09 18:32:06 ЛС | профиль | цитата
Вот вам схема Леонида (мной лишь добавлены слои) которая точно так же, как и схема buchkov-а при увеличении масштаба обрезает фигуру сверху.
схема

Add(MainForm,15261923,175,406)
{
Width=939
Height=500
Ctl3D=0
WinStyle=3
WindowsState=2
MouseCapture=0
Position=1
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(onMouseWheel)
link(onCreate,16299401:doEvent1,[])
link(onMouseWheel,11527075:doCalc,[(214,440)(214,244)])
}
Add(GL_Main,12986311,357,420)
{
Color=12639424
TwoSide=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[])
link(Handle,7623905:Handle,[(363,411)(370,411)])
}
Add(Timer,9506849,266,469)
{
Interval=10
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,357,469)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,308,469)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,8079493:doRotate,[(333,489)(333,314)])
link(onEvent4,771925:doPopMatrix,[(349,496)(349,489)])
link(onEvent5,12986311:doFlip,[(340,503)(340,440)])
}
Add(Hub,16299401,231,420)
{
OutCount=5
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,9506849:doTimer,[(256,440)(256,475)])
}
Add(GL_Perspective,3410847,406,427)
{
Aspect=2
Fovy=30
}
Add(GL_Point3D,7772462,623,371)
{
Y=1
Z=1
}
Add(GL_Options,15876912,532,420)
{
link(onEvent,13370757:doEnabled,[])
}
Add(GL_Rotate,8079493,392,308)
{
Angle=30
Y=200
link(onRotate,858408:doTranslate,[])
link(Angle,3048951:Position,[])
}
Add(GL_Point3D,10506615,882,378)
{
link(X,7416995:Part1,[(888,355)(895,355)])
link(Y,7416995:Part2,[(895,362)(902,362)])
link(Z,7416995:Part3,[(902,369)(909,369)])
}
Add(GL_Point3D,5206949,917,378)
{
link(X,7416995:Part4,[(923,369)(916,369)])
link(Y,7416995:Part5,[(930,362)(923,362)])
link(Z,7416995:Part6,[(937,355)(930,355)])
}
Add(Gl_Translate,858408,483,308)
{
X=-3
Y=-1.2
link(onTranslate,5852894:doDraw,[])
}
Add(Gl_Scale,683218,581,308)
{
X=1
Y=1
Z=1
link(onScale,9392691:doColor,[])
link(X,15114739:Var1,[(587,299)])
link(Y,15114739:Var2,[])
link(Z,15114739:Var3,[(601,299)])
}
Add(StrList,2315546,819,259)
{
Strings=#19:0/60/580/2000/0/580|18:0/76/600/2000/60/0|22:0/2400/600/2000/2384/0|18:0/2384/600/16/76/0|23:1984/2384/600/2000/76/0|
}
Add(ArrayEnum,12642073,833,315)
{
link(onItem,7416995:doSplit,[])
link(Array,2315546:Array,[])
}
Add(GL_GluTools,12198675,448,420)
{
Texture=0
link(onInit,5809249:doEnabled,[])
}
Add(GL_Options,5809249,490,420)
{
Flag=2
link(onEvent,15876912:doEnabled,[])
}
Add(GL_Cube2,15959241,896,427)
{
link(Point1,10506615:Point3D,[(902,422)(888,422)])
link(Point2,5206949:Point3D,[(909,422)(923,422)])
}
Add(MultiStrPart,7416995,889,315)
{
Char="/"
Count=6
link(onSplit,15959241:doDraw,[(942,321)(942,307)(872,307)(872,433)])
}
Add(GL_Color,9392691,644,308)
{
Color=12632256
link(onColor,15952797:doEvent,[])
}
Add(GL_Light,14665421,623,420)
{
Ambient=8421504
Diffuse=12632256
Specular=8388608
link(onEnabled,14665421:doMove,[(662,426)(662,440)(613,440)(613,433)])
link(Point,7772462:Point3D,[])
}
Add(GL_Options,13370757,574,420)
{
Flag=1
link(onEvent,14665421:doEnabled,[])
}
Add(Gl_Axis,5852894,532,308)
{
link(onDraw,683218:doScale,[])
}
Add(Math,11205482,588,245)
{
OpType=3
Op2=10000
Default=0.0001
}
Add(GetDataEx,15114739,588,294)
{
link(Data,11205482:Result,[])
}
Add(GL_PolygonMode,2724116,756,315)
{
Side=2
Mode=1
link(onPolygonMode,2128545:doWork2,[])
}
Add(GL_PolygonMode,6287378,756,273)
{
Side=2
Mode=2
link(onPolygonMode,2128545:doWork1,[(809,279)])
}
Add(Counter,2411833,707,245)
{
Max=1
}
Add(IndexToChanel,15952797,707,308)
{
Point(Index)
link(onEvent1,6287378:doPolygonMode,[(750,314)(750,279)])
link(onEvent2,2724116:doPolygonMode,[])
link(Index,2411833:Count,[])
}
Add(HubEx,2128545,805,315)
{
link(onEvent,12642073:doEnum,[])
}
Add(Button,5764460,658,245)
{
Left=15
Top=100
Width=80
Height=40
link(onClick,2411833:doNext,[])
}
Add(Image,7623905,357,371)
{
Left=110
Width=805
Height=460
Layout="horiz1"
WidthScale=100
Point(Handle)
Point(onMouseWheel)
}
Add(ScrollBar,14431264,539,245)
{
Left=75
Top=170
Width=15
Height=165
Max=100
Min=1
Position=1
Kind=1
link(onPosition,3171973:doWork2,[])
}
Add(MathParse,11527075,462,238)
{
DataCount=1
MathStr="%0 + %1/120"
Default=1
link(onResult,9849935:doEvent1,[])
}
Add(Hub,9849935,511,238)
{
link(onEvent1,3171973:doWork1,[(578,244)])
link(onEvent2,14431264:doPosition,[])
}
Add(HubEx,3171973,574,245)
{
link(onEvent,11205482:doOperation,[])
}
Add(ScrollBar,3048951,392,259)
{
Left=5
Top=170
Width=15
Height=165
Max=180
Min=-180
Position=30
Kind=1
}
Add(HBoxLayout,2717337,245,63)
{
Name="horiz1"
Space=3
Padding=3
Layout=""
}
Add(LayoutSpacer,3693919,182,63)
{
Top=25
Width=110
Layout="horiz1"
}

Редактировалось 2 раз(а), последний 2017-01-09 18:40:09
карма: 10

0
Ответов: 9906
Рейтинг: 351
#7: 2017-01-10 16:12:38 ЛС | профиль | цитата
sla8a писал(а):
вы вообще сейчас о чем?

Мы сейчас о том, что никаким колесом никакой Zoom не делается вообще.
И фокус невидимому элементу не передается. И работает колесо только когда мЫша над видимым элементом.
В win-10 v.1607. XP ставить не буду.

sla8a писал(а):
Вы хоть мой пост с описанием проблемы и ее решением читали?

Мы читали, и мы увидели (на схеме Леонид-а, а не Вашей), что это не решение, а бред сивой кобылы.

Не надо делать doViewPort по любому Resize. Надо один раз установить размеры окна отображения (Image, PaintBox, ...) равными, скажем, размерам экрана. До выполнения GL_Main.doInit
карма: 9

0
Ответов: 2193
Рейтинг: 673
#8: 2017-01-11 00:37:02 ЛС | профиль | цитата
Galkov писал(а):
Мы сейчас о том, что никаким колесом никакой Zoom не делается вообще.
У меня делается, у ТС судя по этому:
buchkov писал(а):
При изменении колесом мыши
тоже все нормально, а вы пишите что не делается.

Galkov писал(а):
на схеме Леонид-а, а не Вашей
Ну сколько вам раз повторить, что нет тут МОЕЙ схемы. Есть схема ТС, в которой я добавил одну связь чтобы ТС было легче понять. О чем и было написано:
sla8a писал(а):
Вот ваша схема с правкой (добавлена одна связь)


Galkov писал(а):
... это не решение, а бред сивой кобылы.
Не надо делать doViewPort по любому Resize. Надо один раз установить размеры окна отображения (Image, PaintBox, ...) равными, скажем, размерам экрана. До выполнения GL_Main.doInit

Значит использовать onResize - это бред сивой кобылы и вы знаете как это сделать по другому, а схема где? Мне очень хочется посмотреть как вы это сделаете. Напомню вам два момента: это использования горизонтального слоя и у формы свойство BorderStyle = bsSizeable.

Давайте не уходить от вопроса. ТС спросил почему у него обрезается рисунок, а вы его (даже не его, а меня) учите использовать onMouseWheel, хотя по схеме видно, что onMouseWheel использовал (точка подключена), просто из-за проблемы скорее всего начал метод тыка.
Леонид, Galkov, вы хоть скажите у вас при компиляции схемы ТС и увеличения фигуры наблюдается обрезания верха фигуры? А то может у вас все нормально и вы вообще не понимаете проблемы ТС.
карма: 10

0
Ответов: 8887
Рейтинг: 823
#9: 2017-01-11 10:19:40 ЛС | профиль | цитата
sla8a писал(а):
у вас ... наблюдается обрезания верха
Да! (Я не вникая удалил всё, на мой взгляд, лишнее и выложил, чем и заслужил ваше не одобрение )
карма: 19

0
Ответов: 9906
Рейтинг: 351
#10: 2017-01-11 16:54:03 ЛС | профиль | цитата
sla8a, дорогой, ты чего из трусов выпрыгиваешь.
Использование колеса путем передачи фокуса невидимому элементу - это тоже бред сивой кобылы. Вполне себе достаточно, чтобы показать нормальный способ.
Человек чешет левой ногой правое ухо - это повод, чтобы предположить, что он не знает о том, что рукой легче и проще.
Мне так кажется. Если Вам кажется по другому - ну на здоровье, Ваши проблемы.
Не мои. Не приставайте ко мне по этому поводу, пожалуйста.

sla8a писал(а):
Значит использовать onResize - это бред сивой кобылы
Именно так.
Непропорциональный Zoom во время Resize - заслуживает именно такого названия.

sla8a писал(а):
и вы знаете как это сделать по другому
Мы не только знаем, но и рассказали уже - как.
Хорошо, расскажу еще раз.
В стиле "для Писателей" (не длиннее 256 символов): тупо увеличьте размер контрола рисования.
Сделайте высоту, для примера, не 555 - а 1000. А ширину - 2000 (а не 1325).


Неужели не видно, что обрезание идет именно по этой высоте (555), и этой ширине (1325).
Надо полсотни элементов (большой половиной из которых я не пользовался) вывалить на форум, потому-что некто -- в фразу из пяти слов въехать не может...

DIXI



Леонид, zooming логично делать не по линейному закону, а по экспоненциальному...
Не прибавлять/отнимать от масштаба чего-то там, а умножать/делить на 1.1 (к примеру)

Редактировалось 1 раз(а), последний 2017-01-11 16:56:12
карма: 9

0
Ответов: 2193
Рейтинг: 673
#11: 2017-01-11 20:00:23 ЛС | профиль | цитата
Galkov, может уже хватит. Давайте схему, а то текста много, а помощи от вас ТС = 0.
Galkov писал(а):
Сделайте высоту, для примера, не 555 - а 1000. А ширину - 2000 (а не 1325).
Неужели не видно, что обрезание идет именно по этой высоте (555), и этой ширине (1325).

Да видно мне было это изначально. Это вы не видете что это вы бред советуете. Объясню почему. Даже если выставить как вы пишите высоту и ширину больше, соглашусь обрезать не будет. Но VeiwPort, а затем и Perspective возьмут эти размеры окна и выстоят по этому окну перспективу. А после того как окно растянется на весь экран и слой подгонит размер PaintBox-а, OpenGL будет криво выводить изображение используя ранее установленные данные.
Как и писал выше, нужно после того как размер PaintBox-а выставится слоем сделать doViewPort и перспектива выставиться соответственно. И onResize тут самое то.

Если вы схему своей идеи не выложите спорить с вами дальше не имеет смысла.
карма: 10

0
Ответов: 62
Рейтинг: 0
#12: 2017-01-14 06:33:45 ЛС | профиль | цитата
По схеме Леонида тоже обрезаеться
Извините за флуд. Недумал, что мой вопрос вызовет столько эмоций у Уважаемых людей. Спасибо за ответы. Попробую каждый вариант.
Add(ChildGroupBox,8197235,140,91)
{
}
BEGIN_SDK
Add(EditMulti,15272073,21,21)
{
}
Add(GroupBox,3970287,35,105)
{
Width=100
Height=440
Layout="parent.horiz1"
WidthScale=20
}
END_SDK
Add(MainForm,15261923,84,294)
{
Width=939
Height=500
Ctl3D=0
WinStyle=3
WindowsState=2
MouseCapture=0
Position=1
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(onMouseWheel)
link(onCreate,16299401:doEvent1,[])
link(onMouseWheel,11527075:doCalc,[(123,328)(123,132)])
}
Add(GL_Main,12986311,266,308)
{
Color=12639424
TwoSide=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[])
link(Handle,7623905:Handle,[])
}
Add(Timer,9506849,175,357)
{
Interval=10
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,266,357)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,217,357)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,8079493:doRotate,[(242,377)(242,202)])
link(onEvent4,771925:doPopMatrix,[(258,384)(258,377)])
link(onEvent5,12986311:doFlip,[(249,391)(249,328)])
}
Add(Hub,16299401,140,308)
{
OutCount=5
link(onEvent1,12986311:doInit,[])
link(onEvent2,12986311:doViewPort,[])
link(onEvent3,9506849:doTimer,[(165,328)(165,363)])
}
Add(GL_Perspective,3410847,315,315)
{
Aspect=2
Fovy=30
}
Add(GL_Point3D,7772462,532,259)
{
Y=1
Z=1
}
Add(GL_Options,15876912,441,308)
{
link(onEvent,13370757:doEnabled,[])
}
Add(GL_Rotate,8079493,301,196)
{
Angle=30
Y=200
link(onRotate,858408:doTranslate,[])
}
Add(GL_Point3D,10506615,791,266)
{
link(X,7416995:Part1,[(797,250)(804,250)])
link(Y,7416995:Part2,[(804,250)(811,250)])
link(Z,7416995:Part3,[(811,250)(818,250)])
}
Add(GL_Point3D,5206949,826,266)
{
link(X,7416995:Part4,[(832,250)(825,250)])
link(Y,7416995:Part5,[(839,250)(832,250)])
link(Z,7416995:Part6,[(846,250)(839,250)])
}
Add(Gl_Translate,858408,392,196)
{
X=-3
Y=-1.2
link(onTranslate,5852894:doDraw,[])
}
Add(Gl_Scale,683218,490,196)
{
X=1
Y=1
Z=1
link(onScale,9392691:doColor,[])
link(X,15114739:Var1,[(496,187)])
link(Y,15114739:Var2,[])
link(Z,15114739:Var3,[(510,187)])
}
Add(StrList,2315546,728,147)
{
Strings=#19:0/60/580/2000/0/580|18:0/76/600/2000/60/0|22:0/2400/600/2000/2384/0|18:0/2384/600/16/76/0|23:1984/2384/600/2000/76/0|
}
Add(ArrayEnum,12642073,742,203)
{
link(onItem,7416995:doSplit,[])
link(Array,2315546:Array,[])
}
Add(GL_GluTools,12198675,357,308)
{
Texture=0
link(onInit,5809249:doEnabled,[])
}
Add(GL_Options,5809249,399,308)
{
Flag=2
link(onEvent,15876912:doEnabled,[])
}
Add(GL_Cube2,15959241,805,315)
{
link(Point1,10506615:Point3D,[(811,307)(797,307)])
link(Point2,5206949:Point3D,[(818,307)(832,307)])
}
Add(MultiStrPart,7416995,798,203)
{
Char="/"
Count=6
link(onSplit,15959241:doDraw,[(851,209)(851,195)(781,195)(781,321)])
}
Add(GL_Color,9392691,553,196)
{
Color=12632256
link(onColor,15952797:doEvent,[])
}
Add(GL_Light,14665421,532,308)
{
Ambient=8421504
Diffuse=12632256
Specular=8388608
link(onEnabled,14665421:doMove,[(571,314)(571,328)(522,328)(522,321)])
}
Add(GL_Options,13370757,483,308)
{
Flag=1
link(onEvent,14665421:doEnabled,[])
}
Add(Gl_Axis,5852894,441,196)
{
link(onDraw,683218:doScale,[])
}
Add(Math,11205482,497,133)
{
OpType=3
Op2=10000
Default=0.0001
}
Add(GetDataEx,15114739,497,182)
{
link(Data,11205482:Result,[])
}
Add(GL_PolygonMode,2724116,665,203)
{
Side=2
Mode=1
link(onPolygonMode,2128545:doWork2,[])
}
Add(GL_PolygonMode,6287378,665,161)
{
Side=2
Mode=2
link(onPolygonMode,2128545:doWork1,[(718,167)])
}
Add(Counter,2411833,616,133)
{
Max=1
}
Add(IndexToChanel,15952797,616,196)
{
Point(Index)
link(onEvent1,6287378:doPolygonMode,[(659,202)(659,167)])
link(onEvent2,2724116:doPolygonMode,[])
link(Index,2411833:Count,[])
}
Add(HubEx,2128545,714,203)
{
link(onEvent,12642073:doEnum,[])
}
Add(Button,5764460,567,133)
{
Left=15
Top=100
Width=80
Height=40
link(onClick,2411833:doNext,[])
}
Add(Image,7623905,259,259)
{
Left=110
Width=805
Height=460
Layout="horiz1"
WidthScale=80
Point(Handle)
Point(onMouseWheel)
}
Add(ScrollBar,14431264,448,133)
{
Left=75
Top=170
Width=15
Height=165
Max=100
Min=1
Position=1
Kind=1
link(onPosition,3171973:doWork2,[])
}
Add(MathParse,11527075,371,126)
{
DataCount=1
MathStr="%0 + %1/120"
Default=1
link(onResult,9849935:doEvent1,[])
}
Add(Hub,9849935,420,126)
{
link(onEvent1,3171973:doWork1,[(487,132)])
link(onEvent2,14431264:doPosition,[])
}
Add(HubEx,3171973,483,133)
{
link(onEvent,11205482:doOperation,[])
}
Add(ScrollBar,3048951,301,147)
{
Left=5
Top=170
Width=15
Height=165
Max=180
Min=-180
Position=30
Kind=1
}
Add(HBoxLayout,2977451,49,105)
{
Name="horiz1"
Space=3
Padding=3
HeightScale=90
Layout="vert"
}


sla8a прав все работает. Всем спасибо.

Редактировалось 4 раз(а), последний 2017-01-14 09:56:41
карма: 0

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)