Вверх ↑
Ответов: 1926
Рейтинг: 172
#1: 2024-05-09 17:42:28 ЛС | профиль | цитата
Project003.gif
Может показаться сложновато, но на самом деле всё просто. Перемещение графика - мышью. Масштабирование - колесом, по горизтонали - с зажатым 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

Файл со схемой
карма: 9
0
файлы: 1ScalePlotter.rar [4.8KB] [393]
Редактировалось 2 раз(а), последний 2024-05-09 17:44:40