Может показаться сложновато, но на самом деле всё просто. Перемещение графика - мышью. Масштабирование - колесом, по горизтонали - с зажатым Ctrl. Двойное нажатие - возвращение по умолчанию. Add(MainForm,2953706,98,119) { Width=751 Height=279 Position=1 link(onCreate,11564601:doEvent1,[]) } Add(Plotter,5856695,343,336) { Width=743 Height=252 Align=5 Name="граф" Hint=" " LeftMargin=70 MouseControl=1 Point(doHint) Point(MouseX) Point(MouseY) Point(Width) Point(Height) Point(MinX) Point(MaxX) Point(MinY) Point(MaxY) Point(doMinW) Point(doMaxW) Point(doMinH) Point(doMaxH) Point(onMouseMove) Point(onMouseWheel) Point(onDblClick) Point(onMouseDown) link(onMouseMove,1613566:In,[]) link(onMouseWheel,15796291:In,[]) link(onDblClick,574136:In,[]) link(onMouseDown,9867996:In,[]) } Add(MultiElement,81001,63,343) { link(onEvent1,5856695:doHint,[]) } BEGIN_SDK Add(EditMulti,1302043,21,21) { EventCount=1 Width=384 } Add(PlotMouseValues,10382350,42,84) { Grapher="parent.граф" link(onMouseMove,10136405:doSeparateMT,[]) } Add(StrCatDelim,9902748,238,105) { Delimiter=" х " link(onStrCatDlm,1302043:onEvent1,[(376,111)(376,27)]) link(Str1,4087025:Var,[(244,93)(188,93)]) } Add(MT_MultiData,10136405,84,98) { link(onData1,6181016:doOperation,[(128,104)(128,55)]) link(onData2,14824216:doOperation,[]) } Add(Math,6181016,140,49) { OpType=35 Op2=1 link(onResult,4087025:doConvert,[]) } Add(Math,14824216,140,105) { OpType=35 Op2=0.001 link(onResult,5951254:doConvert,[]) } Add(ConvertorEx,4087025,182,49) { Mode=13 } Add(ConvertorEx,5951254,189,105) { Mode=13 link(onResult,9902748:doStrCatDlm,[]) } Add(Icon,11758005,210,168) { @Hint=#5:#main| Icon=[ZIP5E07000078DADD93B10EC22014452F71607433DD7474F40FBAF6AF64EB6F35E9A7F423D074785EDA86107491C750BD7020BC849390F000C3D134082B3A0B9C005C094BB861AD875C2C7616E7DCB044EF1191020F2FEA25F121553CF16EB1247A3486CCB3AAD254F168DE552CF9E8517E3CE5374E3D3B6928BD24EBAFEF23C97C3F163BABE45F3D3F1691095E46F879C4607AF847E048400C3910BBD5CEA4257722F04FE2789E6561DA767662E405CDBAE490] } END_SDK Add(LineBreak,16417384,364,546) { Caption="H" Type=1 link(Data,6421100:Var2,[]) Primary=[10408490,525,-161] } Add(LineBreak,8590426,350,609) { Caption="Y" Type=1 link(Data,13417535:Var2,[]) Primary=[15518365,441,-455] } Add(LineBreak,9005018,392,406) { Caption="maxY" Type=1 link(Data,2530804:Var2,[]) Primary=[10136765,448,-98] } Add(LineBreak,5995052,343,637) { Caption="X" Type=1 link(Data,10448968:Var2,[]) Primary=[12342927,399,-483] } Add(LineBreak,12540393,385,441) { Caption="minY" Type=1 link(Data,15660820:Var2,[]) Primary=[2531327,462,-98] } Add(LineBreak,6610257,112,350) { Caption="0" link(Out,11073481:doWork2,[]) Primary=[15701086,903,-168] } Add(LineBreak,11007452,168,357) { Caption="0" link(Out,8853057:doWork2,[]) Primary=[1495339,847,-168] } Add(LineBreak,1910310,231,364) { Caption="0" link(Out,4101063:doWork2,[]) Primary=[6809974,784,-168] } Add(LineBreak,6550395,294,371) { Caption="0" link(Out,14450881:doWork2,[]) Primary=[2871107,721,-168] } Add(LineBreak,3658137,224,371) { Caption="minY" link(Out,14837032:doWork2,[]) Primary=[2003759,896,49] } Add(HubEx,4101063,266,364) { link(onEvent,5856695:doMinH,[]) } Add(LineBreak,6046068,280,378) { Caption="maxY" link(Out,8262367:doWork2,[]) Primary=[8562717,749,35] } Add(HubEx,14450881,329,371) { link(onEvent,5856695:doMaxH,[]) } Add(LineBreak,4128527,357,574) { Caption="W" Type=1 link(Data,3880903:Var2,[]) Primary=[10387127,546,28] } Add(LineBreak,9358009,378,476) { Caption="maxX" Type=1 link(Data,15987918:Var2,[]) Primary=[3788714,455,49] } Add(LineBreak,14207807,371,511) { Caption="minX" Type=1 link(Data,101266:Var2,[]) Primary=[12364661,469,49] } Add(LineBreak,12893407,105,357) { Caption="minX" link(Out,10401228:doWork2,[]) Primary=[13537746,938,273] } Add(LineBreak,2109459,161,364) { Caption="maxX" link(Out,3777600:doWork2,[]) Primary=[8197703,973,273] } Add(HubEx,8853057,210,357) { link(onEvent,5856695:doMaxW,[]) } Add(HubEx,11073481,147,350) { link(onEvent,5856695:doMinW,[]) } Add(LineBreak,12478335,364,609) { Caption="Y" Type=1 link(Data,13417535:Var3,[(370,600)]) Primary=[1494820,1211,-441] } Add(LineBreak,11395469,357,637) { Caption="X" Type=1 link(Data,10448968:Var3,[(363,628)]) Primary=[7653649,994,-469] } Add(GetDataEx,13417535,350,595) { link(Data,5856695:MouseY,[]) } Add(GetDataEx,10448968,343,623) { link(Data,5856695:MouseX,[]) } Add(LineBreak,4394135,105,364) { Caption="minX" link(Out,10401228:doWork3,[(151,370)]) Primary=[7997576,1372,-49] } Add(LineBreak,5824415,161,371) { Caption="maxX" link(Out,3777600:doWork3,[(214,377)]) Primary=[7492353,1330,-14] } Add(LineBreak,1784297,385,511) { Caption="minX" Type=1 link(Data,13866081:Var2,[]) Primary=[14600495,1022,-343] } Add(LineBreak,3126545,392,476) { Caption="maxX" Type=1 link(Data,12300463:Var2,[]) Primary=[2286121,1057,-308] } Add(HubEx,10401228,147,357) { Angle=3 link(onEvent,11073481:doWork3,[]) } Add(HubEx,3777600,210,364) { Angle=3 link(onEvent,8853057:doWork3,[]) } Add(GetDataEx,101266,371,497) { link(Data,5856695:MinX,[]) } Add(GetDataEx,15987918,378,462) { link(Data,5856695:MaxX,[]) } Add(LineBreak,5931866,399,441) { Caption="minY" Type=1 link(Data,1147001:Var2,[]) Primary=[2752673,1232,-273] } Add(LineBreak,170846,406,406) { Caption="maxY" Type=1 link(Data,11146240:Var2,[]) Primary=[2674952,1267,-238] } Add(GetDataEx,2530804,392,392) { link(Data,5856695:MaxY,[]) } Add(GetDataEx,15660820,385,427) { link(Data,5856695:MinY,[]) } Add(LineBreak,9549396,224,378) { Caption="minY" link(Out,14837032:doWork3,[(270,384)]) Primary=[1041670,1477,-63] } Add(LineBreak,14416790,280,385) { Caption="maxY" link(Out,8262367:doWork3,[(333,391)]) Primary=[1420019,1435,-28] } Add(HubEx,14837032,266,371) { Angle=3 link(onEvent,4101063:doWork3,[]) } Add(HubEx,8262367,329,378) { Angle=3 link(onEvent,14450881:doWork3,[]) } Add(LineBreak,10280484,399,511) { Caption="minX" Type=1 link(Data,13866081:Var3,[(405,502)]) Primary=[7739509,966,-252] } Add(LineBreak,4719676,406,476) { Caption="maxX" Type=1 link(Data,12300463:Var3,[(412,467)]) Primary=[16766767,966,-203] } Add(GetDataEx,13866081,385,497) { Angle=3 link(Data,101266:Var3,[]) } Add(GetDataEx,12300463,392,462) { Angle=3 link(Data,15987918:Var3,[]) } Add(LineBreak,5288283,371,574) { Caption="W" Type=1 link(Data,3880903:Var3,[(377,565)]) Primary=[15545067,1008,-287] } Add(GetDataEx,6421100,364,532) { link(Data,5856695:Height,[]) } Add(GetDataEx,3880903,357,560) { link(Data,5856695:Width,[]) } Add(LineBreak,1920040,413,441) { Caption="minY" Type=1 link(Data,1147001:Var3,[(419,432)]) Primary=[14934122,1176,-182] } Add(LineBreak,6373423,420,406) { Caption="maxY" Type=1 link(Data,11146240:Var3,[(426,397)]) Primary=[4979168,1176,-133] } Add(LineBreak,15186534,378,546) { Caption="H" Type=1 link(Data,6421100:Var3,[(384,537)]) Primary=[10168402,1225,-259] } Add(GetDataEx,11146240,406,392) { Angle=3 link(Data,2530804:Var3,[]) } Add(GetDataEx,1147001,399,427) { Angle=3 link(Data,15660820:Var3,[]) } Add(LineBreak,523226,875,182) { Caption="m_dbl" link(Out,4149277:doWork2,[]) Primary=[574136,-462,168] } Add(Math,10430646,987,413) { ResultType=0 link(onResult,8562717:In,[]) link(Op1,16498673:Var3,[(993,334)]) link(Op2,8404121:Var2,[]) } Add(InfoTip,14497899,588,108) { Info=#37:Масштабирование и перемещение графика| Font=[MS Sans Serif,8,1,0,1] Frame=2 HAlign=0 Width=1191 Height=648 Margin=3 } Add(Keyboard,5873061,714,413) { @Hint=#4:Ctrl| Key=17 link(onReadKey,3871601:doEvent,[]) AddHint(1,-30,30,13,@Hint) } Add(LineBreak,16001812,616,413) { Caption="m_whl" link(Out,8603514:doOperation,[]) Primary=[15796291,-147,-70] } Add(IndexToChanel,3871601,756,413) { link(onEvent1,1710972:doCalc,[]) link(onEvent2,9248600:doCalc,[(807,426)(807,636)]) } Add(Math,2161453,889,413) { OpType=7 Op2=2 ResultType=0 link(onResult,6571493:doCompare,[]) link(Op1,10408490:Var,[]) } Add(If_else,6571493,938,413) { @Hint=#66:Если мышь выше середины графика - изменяться будет верхний предел.|19:Если ниже - нижний.| Type=3 link(onTrue,10430646:doOperation,[]) link(onFalse,5988695:doOperation,[]) link(Op1,10613574:Var,[]) AddHint(2,46,191,52,@Hint) } Add(LineBreak,4288249,609,182) { Caption="m_mov" link(Out,4606252:doEvent1,[]) Primary=[1613566,-196,154] } Add(Memory,12778854,742,182) { Point(Data) link(onData,9451444:doValue,[]) link(Data,12342927:Var,[]) } Add(Memory,9451444,791,182) { Point(Data) link(Data,15518365:Var,[]) } Add(LineBreak,9865542,791,238) { Caption="Y" Type=1 link(Data,14844302:Var2,[]) Primary=[10613574,147,147] } Add(Math,5988695,1078,420) { ResultType=0 link(onResult,2003759:In,[]) link(Op1,8404121:Var3,[(1084,397)]) link(Op2,3695965:Var3,[(1091,369)]) } Add(DoData,14977395,938,182) { @Hint=#18:Обнуление масштаба| Data=Integer(0) link(onEventData,1223187:doEvent1,[]) AddHint(-44,-33,124,13,@Hint) } Add(Hub,1223187,987,182) { OutCount=4 link(onEvent1,15701086:In,[]) link(onEvent2,1495339:In,[]) link(onEvent3,6809974:In,[]) link(onEvent4,2871107:In,[]) } Add(HubEx,4149277,924,182) { link(onEvent,14977395:doData,[]) } Add(HubEx,13182184,924,189) { Angle=3 link(onEvent,4149277:doWork3,[]) } Add(MathParse,1710972,833,413) { DataCount=3 MathStr="-%1 * (%2-%3) / 20" ResultType=0 link(onResult,2161453:doOperation,[]) link(X1,13940081:Var,[]) link(X2,16498673:Var2,[]) link(X3,3695965:Var2,[]) } Add(Math,8603514,672,413) { OpType=3 Op2=120 ResultType=0 link(onResult,5873061:doReadKey,[]) } Add(LineBreak,8601325,672,476) { Caption="-" Type=1 link(Data,2993677:Var2,[]) Primary=[13940081,161,-189] } Add(GetDataEx,8404121,994,392) { link(Data,1473243:Var,[]) } Add(LineBreak,7165413,833,455) { Type=1 link(Data,1710972:Result,[]) Primary=[1473243,161,-84] } Add(GetDataEx,16498673,840,329) { link(Data,10136765:Var,[]) } Add(GetDataEx,3695965,847,364) { link(Data,2531327:Var,[]) } Add(Math,6352801,1001,630) { ResultType=0 link(onResult,13537746:In,[]) link(Op1,5098688:Var3,[(1007,586)]) link(Op2,8384721:Var2,[]) } Add(Math,16301733,903,630) { OpType=7 Op2=2 ResultType=0 link(onResult,8983174:doCompare,[]) link(Op1,10387127:Var,[]) } Add(If_else,8983174,952,630) { @Hint=#64:Если мышь левее середины графика - изменяться будет мин. предел.|27:Если правее - макс. предел.| Type=3 link(onTrue,6352801:doOperation,[]) link(onFalse,10133333:doOperation,[]) link(Op1,15091224:Var,[]) AddHint(3,50,173,52,@Hint) } Add(LineBreak,10047037,742,238) { Caption="X" Type=1 link(Data,12838422:Var2,[]) Primary=[15091224,210,364] } Add(Math,10133333,1092,637) { ResultType=0 link(onResult,8197703:In,[]) link(Op1,8384721:Var3,[(1098,614)]) link(Op2,11778232:Var3,[(1105,551)]) } Add(MathParse,9248600,826,630) { DataCount=3 MathStr="-%1 * (%2-%3) / 20" ResultType=0 link(onResult,16301733:doOperation,[]) link(X1,2993677:Var3,[(832,460)]) link(X2,11778232:Var2,[]) link(X3,5098688:Var2,[]) } Add(GetDataEx,8384721,1008,609) { link(Data,15117383:Var,[]) } Add(LineBreak,7132042,826,672) { Type=1 link(Data,9248600:Result,[]) Primary=[15117383,182,-84] } Add(GetDataEx,11778232,833,546) { link(Data,3788714:Var,[]) } Add(GetDataEx,5098688,840,581) { link(Data,12364661:Var,[]) } Add(GetDataEx,2993677,672,455) { link(Data,8603514:Result,[]) } Add(IndexToChanel,6220309,1239,196) { link(onEvent1,10980761:doValue,[]) } Add(LineBreak,8198129,1176,196) { Caption="m_dwn" link(Out,6220309:doEvent,[]) Primary=[9867996,-707,161] } Add(Memory,10980761,1351,196) { Point(Data) link(onData,14008836:doValue,[]) link(Data,7653649:Var,[]) } Add(Memory,8582648,1575,196) { Point(Data) link(onData,7570617:doValue,[]) link(Data,1494820:Var,[]) } Add(Hub,4606252,672,182) { link(onEvent1,12778854:doValue,[]) link(onEvent2,6416009:In,[]) } Add(MathParse,8650019,1351,315) { @Hint=#78:(%4 - %3)/(%5-85) - это кол-во значений на один пиксель графика по горизонтали|23:85 - это сумма отступов| DataCount=5 MathStr="(%2 - %1) * (%4 - %3)/(%5-85)" link(onResult,12935809:doEvent1,[]) link(X1,10980761:Value,[]) link(X2,3962182:Var,[]) link(X3,7739509:Var,[]) link(X4,16766767:Var,[]) link(X5,15545067:Var,[]) } Add(LineBreak,3231591,1197,315) { link(Out,607408:doEvent,[]) Primary=[6416009,-497,-126] } Add(LineBreak,8690679,805,238) { Caption="Y" Type=1 link(Data,14844302:Var3,[(811,229)]) Primary=[13377730,777,7] } Add(LineBreak,13319965,756,238) { Caption="X" Type=1 link(Data,12838422:Var3,[(762,229)]) Primary=[3962182,602,7] } Add(GetDataEx,12838422,742,224) { link(Data,12778854:Value,[]) } Add(GetDataEx,14844302,791,224) { link(Data,9451444:Value,[]) } Add(Math,8935555,1435,315) { OpType=1 ResultType=0 link(onResult,7997576:In,[]) link(Op1,14008836:Value,[(1441,271)]) } Add(Hub,12935809,1400,315) { link(onEvent1,8935555:doOperation,[]) link(onEvent2,8093667:doOperation,[(1432,328)(1432,363)]) } Add(Math,8093667,1449,357) { OpType=1 ResultType=0 link(onResult,7492353:In,[]) link(Op1,8761965:Value,[]) } Add(IndexToChanel,607408,1239,315) { link(onEvent1,7816260:doEvent1,[]) } Add(Memory,14008836,1407,196) { Point(Data) link(onData,8761965:doValue,[]) link(Data,14600495:Var,[]) } Add(Memory,8761965,1449,196) { Point(Data) link(onData,8582648:doValue,[]) link(Data,2286121:Var,[]) } Add(Memory,7570617,1631,196) { Point(Data) link(onData,10821109:doValue,[]) link(Data,2752673:Var,[]) } Add(Memory,10821109,1673,196) { Point(Data) link(Data,2674952:Var,[]) } Add(LineBreak,13005953,1533,315) { Caption="doY" link(Out,3764656:doCalc,[]) Primary=[722893,-224,7] } Add(Math,7238563,1659,315) { ResultType=0 link(onResult,1041670:In,[]) link(Op1,7570617:Value,[(1665,271)]) } Add(Hub,5274409,1624,315) { link(onEvent1,7238563:doOperation,[]) link(onEvent2,9665835:doOperation,[(1656,328)(1656,363)]) } Add(Math,9665835,1673,357) { ResultType=0 link(onResult,1420019:In,[]) link(Op1,10821109:Value,[]) } Add(Hub,7816260,1281,315) { link(onEvent1,8650019:doCalc,[]) link(onEvent2,722893:In,[]) } Add(MathParse,3764656,1575,315) { @Hint=#76:(%4 - %3)/(%5-30) - это кол-во значений на один пиксель графика по вертикали|23:30 - это сумма отступов| DataCount=5 MathStr="(%2 - %1) * (%4 - %3)/(%5-30)" link(onResult,5274409:doEvent1,[]) link(X1,8582648:Value,[]) link(X2,13377730:Var,[]) link(X3,14934122:Var,[]) link(X4,4979168:Var,[]) link(X5,10168402:Var,[]) } Add(PlotLines,6477180,469,126) { Grapher="граф" Step=1 } Add(Random,5088484,371,126) { Max=300000 Point(doMin) Point(doMax) link(onRandom,13491799:doOperation,[]) } Add(Hub,11564601,147,133) { link(onEvent1,5088484:doRandomize,[]) link(onEvent2,8442002:doFor,[]) } Add(For,8442002,175,140) { End=1000 link(onEvent,421583:doNext,[]) } Add(CounterEx,421583,224,140) { Max=1000000 link(onNext,14753777:doEvent1,[]) } Add(Math,13491799,420,126) { OpType=2 ResultType=0 link(onResult,6477180:doAdd,[]) link(Op2,11998623:Var,[]) } Add(LineBreak,12135334,224,182) { Type=1 link(Data,421583:Count,[]) Primary=[11998623,203,-84] } Add(Random,11706968,315,140) { Max=150000 link(onRandom,5088484:doMin,[(359,146)(359,153)]) } Add(Hub,14753777,273,140) { OutCount=3 link(onEvent1,11706968:doRandom,[]) link(onEvent2,1989971:doRandom,[(301,153)(301,195)]) link(onEvent3,5088484:doRandom,[(307,160)(307,132)]) } Add(Random,1989971,315,189) { Min=150000 Max=300000 link(onRandom,5088484:doMax,[(359,195)(359,160)]) }
--- Добавлено в 2024-05-09 17:44:40Файл со схемой Редактировалось 2 раз(а), последний 2024-05-09 17:44:40
|