Вверх ↑
Этот топик читают: Гость
Ответов: 1297
Рейтинг: 47
#1: 2022-11-15 00:15:07 ЛС | профиль | цитата
Делал для себя, но может кому пригодится чтоб не изобретать велосипед. Код и схема неоптимальный, делал наскоро, так что буду благодарен за любые улучшения и несильные пинания)
Залить на форум не удалось, хоть файл и меньше 3 МБ, даже меньше 2 не давало. Поэтому на свой ЯД закинул. Также счас выложу новые компоненты Bass в другом разделе.

https://disk.yandex.ru/d/ZLhPemzn-sAwRA



Редактировалось 1 раз(а), последний 2022-11-18 00:52:43
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
2
Голосовали:tig-rrr, ric
Ответов: 2342
Рейтинг: 682
#2: 2022-11-15 21:05:51 ЛС | профиль | цитата
Aziz писал(а):
схема неоптимальный, делал наскоро, так что буду благодарен за любые улучшения и несильные пинания
Неоптимальная это мягко сказано.
Вот интересно зачем использовать при отрисовке Img_AlphaBitmap (в стрелочном индикаторе к примеру), если просто рисуется изображение. Хватило бы обычного Img_Bmp.
карма: 11

0
Ответов: 1297
Рейтинг: 47
#3: 2022-11-15 23:56:06 ЛС | профиль | цитата
sla8a, я пытался сделать универсальный каркас, чтобы можно было бы и с прозрачностью картинки использовать, а не иметь для этого несколько схем. Просто вставил картинку и она превратилась в то что мне нужно. Согласитесь, с альфа каналом это вроде как более функц. схема, чем без него? Или нет? А что еще нарыли? Ну да, если бы я ставил целью хвастаться оптимизацией или стилем программирования, то я об этом прямо бы написал) А так как я бывший бомж, то для бомжа вполне неплохо) Просто здесь, на этом сайте, я за 10+ лет что я здесь, так никто и не выложил ничего подобного бесплатно. Есть только один пример с ActiveX компонентом сторонним. Вот мне нужно было, и ничего не найдя тут, пришлось самому ваять.

Редактировалось 2 раз(а), последний 2022-11-15 23:58:24
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2342
Рейтинг: 682
#4: 2022-11-16 19:59:20 ЛС | профиль | цитата
Aziz писал(а):
пытался сделать универсальный каркас
Тогда понятен такой подход.
Aziz писал(а):
Согласитесь, с альфа каналом это вроде как более функц. схема, чем без него? Или нет?
Не понимаю зачем он. Вот как вариант (вставить в Bitmap изображение стрелочного индикатора из вашей схемы):

Add(MainForm,2953706,441,252)
{
}
Add(PaintBox,16731281,539,315)
{
 Left=95
 Top=55
 Width=180
 Height=94
 link(onBeforeDraw,11579262:doOperation,[])
}
Add(Bitmap,16500501,644,252)
{
}
Add(Img_Bmp,9586560,637,315)
{
 link(Bitmap,16731281:Bitmap,[(643,305)(630,305)(630,361)(545,361)])
 link(SourceBitmap,16500501:Bitmap,[])
}
Add(ScrollBar,7033173,483,315)
{
 Top=134
 Width=218
 Align=4
 Max=35
 link(onPosition,10946406:doWork2,[])
}
Add(HubEx,10946406,521,315)
{
 link(onEvent,16731281:doRefresh,[])
}
Add(Button,2384176,329,315)
{
 Left=155
 Top=215
 Width=69
 Height=25
 Caption="TEST"
 link(onClick,12381031:doTimer,[])
}
Add(Timer,12381031,371,315)
{
 Interval=100
 Enable=1
 link(onTimer,6003918:doNext,[])
}
Add(CounterEx,6003918,413,315)
{
 Max=35
 link(onNext,7101300:doEvent1,[])
}
Add(Hub,7101300,455,315)
{
 link(onEvent1,7033173:doPosition,[])
 link(onEvent2,10946406:doWork3,[(525,328)])
}
Add(Math,11579262,588,315)
{
 OpType=2
 Op2=-177
 link(onResult,9586560:doDraw,[])
 link(Op1,7033173:Position,[(594,306)(533,306)(533,359)(489,359)])
 AddHint(-14,-31,45,13,Op2)
}
Aziz писал(а):
А что еще нарыли?

Да сложно в такой схеме рыть. Чтоб понять логику каких-то участков, приходится распутывать клубки связей, интерес пропадает.
Aziz писал(а):
за 10+ лет что я здесь, так никто и не выложил ничего подобного бесплатно

Так проще самому нарисовать, что у вас и сделано. Чем под каждую "хотелку" элемент делать. Компоненты из вкладки Графики вполне сносно справляются с большинством задач.
карма: 11

0
Ответов: 1297
Рейтинг: 47
#5: 2022-11-16 21:46:40 ЛС | профиль | цитата
Не понимаю зачем он.

А если стрелочный индикатор будет круглым? Тогда некрасиво будет квадрат компонента image светить. А с прозрачностью любой формы все ок.
Ну там логика несложная. А насчет фирменной обфускации кода, согласен))
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1297
Рейтинг: 47
#6: 2022-11-17 12:22:03 ЛС | профиль | цитата
sla8a, там ещё если на живую кнопку доната нажать небольшой хелп набросал с описанием функционала. Также на многих компонентах и мультиэлементах есть комментарии, а в комментах к MathParser история (эволюция) формул, самая верхняя - последняя. Не сразу все заработало как надо, но мне хотелось обойтись формулой чем городить эту логику на компонентах.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 5227
Рейтинг: 587
#7: 2022-11-17 17:43:42 ЛС | профиль | цитата
Aziz, контролами назвать это сложно как не крути. Как опорной точкой для применения графических контролов (на основании графических изображений) могу предложить свой вариант https://forum.hiasm.com/topic/68119/0. К сожалению студия не проявила интереса посему интерес я к такой студии потерял . В основном для таких контролов обязателен менеджер, дабы не переполнять исполняемый файл ресурсами. Окончательный вариант я оставил себе, т.к переписал всю логику (которая глючила со страшной силой) самостоятельно. (от авторского варианта осталась одна функция).

sla8a писал(а):
Так проще самому нарисовать, что у вас и сделано. Чем под каждую "хотелку" элемент делать. Компоненты из вкладки Графики вполне сносно справляются с большинством задач.


Самая больная и бредовая позиция для упоротых маньяков. Я бы посмотрел к примеру что бы вы там нарисовали для моего старого компа что бы я там мог использовать три графика для Real-Time. http://hiasm.bbtalk.me/viewtopic.php?id=30
Честно говоря для меня очевидно одно, (причём ничего не меняется) почти все просто приходят за халявой, хоть за какой то без разницы, удивительно не правда ли . После чего не сделав ни каких телодвижений для развития хоть чего то объявляют меня говнюком. Это как "Назло бабушке отморожу уши" Ну для таких творческих людей которые как всегда типа проходили мимо скажу так, "Вот и проходите, только свои работы больше за муку не толкаю"
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2342
Рейтинг: 682
#8: 2022-11-17 22:05:35 ЛС | профиль | цитата
andrestudio писал(а):
Самая больная и бредовая позиция для упоротых маньяков. Я бы посмотрел к примеру что бы вы там нарисовали для моего старого компа что бы я там мог использовать три графика для Real-Time.
Самому то не надоело бред нести? Вам нужно объяснить разницу между выводом одного значения стрелочным индикатором от Aziz и выводом нескольких сотен данных (не могу утверждать точно, но не пару десяток) в вашем графике? Речь была о простых контроллах (кнопки, тумблеры и т.п.). Но вам же нужно пропихнуть рекламу своего творения и вот удачная тема. Рекламировать и продавать свои труды, ваше личное дело, но не надо при этом вести себя глупо. Это может отпугнуть от вас потенциальных клиентов.
карма: 11

0
Ответов: 1297
Рейтинг: 47
#9: 2022-11-18 00:36:53 ЛС | профиль | цитата
andrestudio, вроде для управления программой вполне мои контролы являются контролирующими элементами) А большего и не нужно. Пока. Если нужно будет экономить ресурсы - перейду на ассемблер и стану чисто кодером, а не веб-предпринимателем, последователем Alex Tew ) Спасибо за наводку на тему и ваш код.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 5227
Рейтинг: 587
#10: 2022-11-18 08:44:28 ЛС | профиль | цитата
sla8a писал(а):
Самому то не надоело бред нести?

Это вы мне сударь Про рекламу :? Наверно хватит спасать свою репутацию трёпом. Всё доказывается делом.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1297
Рейтинг: 47
#11: 2023-04-06 16:43:00 ЛС | профиль | цитата
Пополнение - Dream Knob 1.0 - кноб (крутилка, регулятор) который мне приснился во сне) Есть тормоза в перерисовке если быстро крутить. Кто сможет ускорить его работу, будет здорово. Мне не удалось FTCG компоненты рисования прикрутить, чето ни один из них не пашет.
Выходит, картинки крутить гораздо экономнее чем рисовать их. Но не в плане памяти и размеров программ.
Еще странность этой схемы - если инициализацию брать не с главной формы, а через таймер, то все начинает глючить. Хотя по логике работы схемы должно быть вроде пофиг ей.. Колесико для точной установки.
Можно задавать максимальные \ минимальные значения, 2-й клик - выбор цвета. Но он мне приснился оранжевым и без центрального циферблата)

Add(ChildPanelEx,6678596,280,329)
{
 link(onResult,3904486:doText,[])
}
BEGIN_SDK
  Add(EditMultiEx,11526556,21,21)
  {
   WorkCount=#7:doValue|7:doClear|10:doMinValue|10:doMaxValue|16:doPresisionValue|6:doInit|11:doThickness|7:doColor|
   EventCount=#8:onResult|
   VarCount=#5:Value|
   Width=1189
   Height=844
   link(doValue,11433014:doCompare,[(73,27)(73,461)])
   link(doClear,295307:doClear,[(252,34)(252,489)])
   link(doMinValue,3734854:doValue,[(207,41)(207,496)])
   link(doMaxValue,3231430:doValue,[(227,48)(227,496)])
   link(doPresisionValue,11876470:doValue,[(277,55)(277,496)])
   link(Value,8433487:Result,[(27,732)(377,732)])
   link(doInit,13767139:doEvent1,[(56,62)(56,34)])
   link(doThickness,6131807:doEvent2,[(301,69)(301,62)])
   link(doColor,6281007:doEvent2,[(427,76)(427,174)])
  }
  Add(Panel,14086760,35,105)
  {
   Left=60
   Top=40
   Width=200
   Height=200
   Point(Width)
   Point(Height)
   Point(onMouseWheel)
   Point(onShow)
   Point(onSetFocus)
   link(onMouseWheel,12871532:doCompare,[(83,118)(83,286)])
  }
  Add(Img_Point,10361775,511,392)
  {
   Color=33023
   Size=30
   Point(X)
   Point(Y)
   Point(Size)
   Point(Color)
   link(Bitmap,12465343:Bitmap,[(517,376)(622,376)])
   link(X,16095580:Result,[(524,376)(573,376)])
   link(Y,14307840:Result,[(531,376)(524,376)])
   link(Size,6666965:Result,[(538,310)(573,310)])
   link(Color,11829184:Value,[(545,292)(867,292)])
  }
  Add(PaintBox,12465343,616,329)
  {
   Left=2
   Top=2
   Width=587
   Height=535
   Align=5
   Color=-16777215
   WinStyle=1
   ColorSp=0
   Point(onClick)
   Point(MouseX)
   Point(MouseY)
   Point(onMouseMove)
   Point(onDblClick)
   Point(onMouseWheel)
   link(onMouseMove,12814260:doCompare,[])
   link(onDblClick,14755892:doOpen,[(709,356)(709,167)])
  }
  Add(MathParse,14307840,518,329)
  {
   @Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=4
   MathStr="%3 + %2 * cos (%1 - %4)"
   AngleMode=1
   link(X2,9867155:Var2,[(531,299)(510,299)])
   link(X3,11880627:Var2,[(538,299)(552,299)])
   link(X4,12635440:Var2,[(545,316)(622,316)])
  }
  Add(CounterEx,10043336,448,406)
  {
   Max=2
   Point(doPrev)
   Point(doValue)
   Point(onThroughMax)
   Point(doMax)
   link(onThroughMax,10361775:doDraw,[(496,419)(496,398)])
  }
  Add(MathParse,16095580,567,329)
  {
   @Hint=#30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=4
   MathStr="%3 + %2 * sin(-(%1 - %4)) "
   AngleMode=1
   link(X2,9867155:Var3,[(580,285)])
   link(X3,11880627:Var3,[(587,292)])
   link(X4,12635440:Var1,[(594,299)])
  }
  Add(Hub,8911218,476,329)
  {
   OutCount=3
   link(onEvent1,14307840:doCalc,[])
   link(onEvent2,16095580:doCalc,[(528,342)(528,335)])
   link(onEvent3,328943:doEvent1,[(502,349)(502,363)(464,363)(464,377)])
  }
  Add(Memory,13135093,504,238)
  {
   @Hint=#6:Радиус|
   Default=Integer(150)
   link(onData,12991355:doWork3,[(552,244)])
  }
  Add(Memory,7855591,546,238)
  {
   @Hint=#8:смещение|
   Default=Integer(240)
  }
  Add(GetDataEx,9867155,504,280)
  {
   link(Data,13135093:Value,[])
  }
  Add(GetDataEx,11880627,546,287)
  {
   link(Data,7855591:Value,[])
  }
  Add(TrackBar,16036997,532,49)
  {
   Left=20
   Top=5
   Min=1
   Position=5
   link(onPosition,6131807:doEvent1,[])
  }
  Add(For,4971670,245,245)
  {
   End=300
   link(onEvent,8911218:doEvent1,[(377,251)(377,335)])
   link(onStop,11642599:doWork2,[])
   link(End,13509061:Var2,[])
  }
  Add(Memory,10242442,623,238)
  {
   Default=Integer(-30)
  }
  Add(GetDataEx,12635440,616,294)
  {
   Angle=1
   link(Data,10242442:Value,[(629,299)])
  }
  Add(Hub,7396834,336,182)
  {
   InCount=5
   OutCount=4
   link(onEvent2,4971670:doFor,[(362,195)(362,223)(233,223)(233,251)])
  }
  Add(Memory,9730464,252,182)
  {
   link(onData,14727359:doEvent1,[])
  }
  Add(SampleDelta,2751912,623,392)
  {
   link(onCalcDelta,6570741:doWork3,[(681,398)])
   link(Data,12465343:MouseX,[])
  }
  Add(Math,11944055,77,182)
  {
   link(onResult,2369521:doCompare,[])
   link(Op2,11365138:Var1,[(90,170)(186,170)(186,222)])
  }
  Add(If_else,12814260,672,343)
  {
   Op2=Integer(0)
   link(onTrue,12143584:doEvent1,[(716,349)(716,381)(576,381)(576,412)])
  }
  Add(Memory,11835883,728,392)
  {
   Default=Integer(0)
  }
  Add(GetDataEx,11365138,252,217)
  {
   link(Data,9730464:Value,[])
  }
  Add(SampleDelta,6102838,623,441)
  {
   link(onCalcDelta,7688841:doValue,[(667,447)(667,454)])
   link(Data,12465343:MouseY,[(629,401)(636,401)])
  }
  Add(Hub,12143584,588,406)
  {
   link(onEvent1,2751912:doCalcDelta,[(612,412)(612,398)])
   link(onEvent2,6102838:doCalcDelta,[(612,419)(612,447)])
  }
  Add(HubEx,6570741,677,385)
  {
   Angle=3
   link(onEvent,14122141:doValue,[(681,382)(739,382)(739,398)])
  }
  Add(Math,7511346,728,448)
  {
   OpType=1
   link(onResult,6570741:doWork2,[(772,454)(772,422)(672,422)(672,391)])
   link(Op1,16215539:Var2,[])
   link(Op2,7688841:Value,[(741,429)(713,429)(713,485)(685,485)])
  }
  Add(Memory,7688841,679,448)
  {
   Default=Integer(-30)
   link(onData,7511346:doOperation,[])
  }
  Add(If_else,2369521,147,182)
  {
   Type=2
   Op2=Integer(0)
   link(onTrue,14260345:doCompare,[])
  }
  Add(If_else,14260345,189,182)
  {
   Type=1
   link(onTrue,11434397:doOperation,[(226,188)(226,97)])
   link(Op2,16294626:Value,[(202,142)(174,142)])
  }
  Add(Hub,636877,49,182)
  {
   InCount=2
   OutCount=1
   link(onEvent1,11944055:doOperation,[])
  }
  Add(Math,4054707,903,392)
  {
   OpType=33
   Op2=2
   link(onResult,432243:doCompare,[])
  }
  Add(If_else,432243,952,392)
  {
   Type=1
   Op2=Integer(5)
   link(onTrue,1885234:doData,[])
  }
  Add(SampleDelta,6626697,847,392)
  {
   link(onCalcDelta,4054707:doOperation,[])
  }
  Add(Memory,14122141,798,392)
  {
   link(onData,6626697:doCalcDelta,[])
  }
  Add(DoData,1885234,1001,392)
  {
   link(onEventData,636877:doEvent1,[(1045,398)(1045,293)(30,293)(30,188)])
   link(Data,14122141:Value,[(1007,380)(905,380)(905,436)(804,436)])
  }
  Add(Math,6666965,567,196)
  {
   OpType=3
   Op2=5
   Default=30
   link(onResult,7396834:doEvent3,[(611,202)(611,190)(324,190)(324,202)])
   link(Op1,9867155:Var1,[(573,184)(501,184)(501,285)])
   link(Op2,6913377:Value,[(580,138)(636,138)])
  }
  Add(Hub,14727359,301,182)
  {
   OutCount=3
   link(onEvent1,7396834:doEvent1,[])
   link(onEvent2,13758681:doEvent1,[(327,195)(327,370)(240,370)(240,545)])
  }
  Add(LedNumber,14553885,462,49)
  {
   Left=40
   Top=45
   Width=185
   Height=110
   Color=-16777215
   Font=[MS Sans Serif,8,0,33023,1]
   Text="0"
   SegColor=33023
   Point(doText)
   Point(doSegColor)
   Point(doWidth)
   Point(doHeight)
   Point(doLeft)
   Point(doTop)
  }
  Add(Math,11434397,231,91)
  {
   OpType=35
   Op2=1
   link(onResult,8757309:doEvent1,[(268,97)(268,132)])
  }
  Add(ColorDialog,14755892,770,161)
  {
   link(onSelect,6281007:doEvent1,[])
  }
  Add(Memory,11829184,861,161)
  {
   Default=Integer(2072575)
   link(onData,7396834:doEvent4,[(905,167)(905,188)(324,188)(324,209)])
  }
  Add(Label,2033887,266,56)
  {
   Left=55
   Top=185
   Width=116
   Height=17
   Color=-16777215
   Font=[MS Sans Serif,8,0,-16777211,1]
   Caption="Dream Knob by Aziz"
  }
  Add(If_else,12871532,98,280)
  {
   Type=2
   Op2=Integer(0)
   link(onTrue,11568369:doData,[])
   link(onFalse,180397:doOperation,[(142,293)(142,328)])
  }
  Add(DoData,11568369,147,280)
  {
   link(onEventData,4194936:doWork2,[])
   link(Data,5260772:Var2,[])
  }
  Add(Memory,5800032,147,224)
  {
   Default=Integer(1)
  }
  Add(Math,180397,154,322)
  {
   OpType=1
   link(onResult,4194936:doWork3,[(205,328)])
   link(Op1,16215539:Var1,[(160,317)(407,317)(407,439)])
   link(Op2,5260772:Var3,[(167,264)])
  }
  Add(GetDataEx,5260772,147,259)
  {
   link(Data,5800032:Value,[])
  }
  Add(HubEx,4194936,201,280)
  {
   Angle=3
   link(onEvent,636877:doEvent2,[(205,239)(30,239)(30,195)])
  }
  Add(GetDataEx,16215539,728,434)
  {
   link(Data,11835883:Value,[])
  }
  Add(MathParse,5999133,329,329)
  {
   @Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=1
   MathStr="%1 /  3.3  "
   AngleMode=1
   link(onResult,14553885:doLeft,[(411,335)(411,83)])
   link(X1,14086760:Width,[(335,233)(41,233)])
  }
  Add(MathParse,8433487,371,567)
  {
   @Hint=#36:round( (%1 * ((%3+abs(%2))/300)),%4)|39:round( (%1 * ((%3+abs(%2))/300))+%2,%4)|0:|48:round(((%3 - (300-%1)) * ((%3+abs(%2))/300)),%4)|0:|36:(%5 - %1) * ((%2-%3) / (%5+abs(%4)))|40:((((%5 - %1)-%4) * ((%2-%3) / (%5-%4))))|36:(((%5-%4)-%1) * ((%2-%3) / (%5-%4)))|30:((%4-%1) * (%2 / %5))- (%3/2) |
   DataCount=4
   MathStr="\r\n\r\n"
   Point(doMathStr)
   link(onResult,11324101:doEvent1,[])
   link(X1,13509061:Var3,[(377,236)])
   link(X2,13758913:Var2,[(384,545)(398,545)])
   link(X3,5511496:Var2,[(391,545)(440,545)])
   link(X4,11938062:Var1,[(398,545)])
  }
  Add(Memory,3734854,392,490)
  {
   @Hint=#9:Min value|
   Default=Real(0)
  }
  Add(Memory,3231430,434,490)
  {
   @Hint=#9:Max value|
   Default=Real(100)
  }
  Add(Memory,11876470,532,490)
  {
   @Hint=#15:Round precision|
   Default=Real(1)
  }
  Add(GetDataEx,13509061,252,231)
  {
   link(Data,11365138:Var2,[])
  }
  Add(Memory,16294626,168,70)
  {
   @Hint=#15:Round precision|
   Default=Integer(301)
  }
  Add(If_else,2283850,315,119)
  {
   Type=2
   link(onFalse,2122626:doWork1,[(481,132)])
   link(Op2,13509061:Var1,[(328,107)(249,107)(249,236)])
  }
  Add(Switch,12204523,399,406)
  {
   Point(onOn)
  }
  Add(Hub,328943,476,371)
  {
   link(onEvent1,10043336:doNext,[(502,377)(502,395)(436,395)(436,412)])
  }
  Add(Hub,8757309,280,126)
  {
   InCount=2
   link(onEvent1,2283850:doCompare,[(304,132)(304,125)])
   link(onEvent2,9730464:doValue,[(306,139)(306,163)(240,163)(240,188)])
  }
  Add(DoData,4783746,294,574)
  {
   Data=String(round( (%1 * ((%3+abs(%2-1))/300))+%2-1,%4))
   link(onEventData,7907162:doWork2,[])
  }
  Add(Hub,13758681,252,539)
  {
   link(onEvent1,9557567:doCompare,[(294,545)(294,524)])
   link(onEvent2,8433487:doCalc,[(318,552)(318,573)])
  }
  Add(If_else,9557567,308,518)
  {
   Type=1
   Op2=Integer(0)
   link(onTrue,4783746:doData,[(352,524)(352,552)(282,552)(282,580)])
   link(onFalse,7275907:doCompare,[(352,531)(352,573)(205,573)(205,615)])
   link(Op1,11463559:Var1,[(314,506)])
  }
  Add(GetDataEx,13758913,392,525)
  {
   link(Data,3734854:Value,[])
  }
  Add(DoData,7974367,294,609)
  {
   Data=String(round( (%1 * ((%3+%2)/300)),%4))
   link(onEventData,7907162:doWork3,[(347,615)])
  }
  Add(HubEx,7907162,343,574)
  {
   link(onEvent,8433487:doMathStr,[])
  }
  Add(HubEx,12991355,548,196)
  {
   link(onEvent,6666965:doOperation,[])
  }
  Add(Hub,4018710,623,112)
  {
   OutCount=3
   link(onEvent1,2122626:doWork3,[(649,118)(649,146)])
   link(onEvent2,12991355:doWork1,[(649,125)(649,162)(552,162)])
   link(onEvent3,12740700:doEvent2,[(649,132)(649,94)(163,94)(163,55)])
  }
  Add(HubEx,2122626,477,140)
  {
   Angle=1
   link(onEvent,12465343:doClear,[(481,342)])
  }
  Add(If_else,7275907,217,609)
  {
   Op2=Integer(0)
   link(onTrue,7974367:doData,[])
   link(onFalse,5273580:doData,[(282,622)(282,650)])
  }
  Add(DoData,5273580,294,644)
  {
   Data=String(round( (%1 * ((%3-%2)/300))+%2,%4))
   link(onEventData,7907162:doWork1,[(336,650)(336,571)(347,571)])
  }
  Add(Hub,2911665,399,273)
  {
   OutCount=3
   link(onEvent1,1821441:doEvent1,[(437,279)(437,594)])
   link(onEvent2,4182267:doData,[])
   link(onEvent3,7396834:doEvent2,[(425,293)(425,244)(324,244)(324,195)])
  }
  Add(Memory,295307,483,476)
  {
   @Hint=#22:Input, preset, default|
   Default=Real(0)
   link(onData,1821441:doEvent2,[(527,482)(527,548)(450,548)(450,601)])
  }
  Add(DoData,4182267,448,280)
  {
  }
  Add(MathParse,15795284,511,588)
  {
   @Hint=#36:round( (%1 * ((%3+abs(%2))/300)),%4)|39:round( (%1 * ((%3+abs(%2))/300))+%2,%4)|0:|48:round(((%3 - (300-%1)) * ((%3+abs(%2))/300)),%4)|0:|36:(%5 - %1) * ((%2-%3) / (%5+abs(%4)))|40:((((%5 - %1)-%4) * ((%2-%3) / (%5-%4))))|36:(((%5-%4)-%1) * ((%2-%3) / (%5-%4)))|30:((%4-%1) * (%2 / %5))- (%3/2) |
   DataCount=4
   MathStr="\r\n"
   Point(doMathStr)
   link(onResult,8757309:doEvent2,[(548,594)(548,366)(268,366)(268,139)])
   link(X1,12669674:Var2,[(517,555)(489,555)])
   link(X2,13758913:Var3,[(524,530)])
   link(X3,5511496:Var3,[(531,537)])
   link(X4,11938062:Var2,[(538,568)(531,568)])
  }
  Add(GetDataEx,5511496,434,532)
  {
   link(Data,3231430:Value,[])
  }
  Add(GetDataEx,11938062,525,540)
  {
   link(Data,11876470:Value,[(531,531)(538,531)])
  }
  Add(Hub,1821441,462,588)
  {
   InCount=2
   OutCount=3
   link(onEvent1,11829659:doCompare,[(488,594)(488,632)(415,632)(415,671)])
   link(onEvent2,15795284:doCalc,[(494,601)(494,594)])
  }
  Add(DoData,16180259,420,616)
  {
   Data=String(round( (%1 / ((%3+%2)/300)),%4))
   link(onEventData,1612843:doWork2,[])
  }
  Add(If_else,7116149,476,665)
  {
   Type=1
   Op2=Integer(0)
   link(onTrue,15671250:doData,[(530,671)(530,713)])
   link(onFalse,5726707:doData,[(530,678)(530,748)])
   link(Op1,12669674:Var1,[(482,530)])
  }
  Add(GetDataEx,12669674,483,525)
  {
   link(Data,295307:Value,[])
  }
  Add(If_else,11829659,427,665)
  {
   Type=1
   Op2=Integer(0)
   link(onTrue,7116149:doCompare,[])
   link(onFalse,7902103:doData,[(506,678)(506,671)])
   link(Op1,11463559:Var2,[(433,587)(342,587)])
  }
  Add(GetDataEx,11463559,336,501)
  {
   Angle=1
   link(Data,13758913:Var1,[(354,506)(354,530)])
  }
  Add(DoData,7902103,553,665)
  {
   Data=String(round( (%1 / ((%3+abs(%2))/300))-(%2)*2,%4))
   link(onEventData,15321215:doWork3,[(597,671)])
  }
  Add(HubEx,1612843,477,616)
  {
   Angle=3
   link(onEvent,15795284:doMathStr,[(481,601)])
  }
  Add(DoData,15671250,553,707)
  {
   Data=String(round( (%1 / ((%3+abs(%2))/300))-(%2-1)*2,%4))
   link(onEventData,472989:doWork3,[(589,713)])
  }
  Add(HubEx,15321215,593,658)
  {
   Angle=3
   link(onEvent,1612843:doWork1,[(597,622)])
  }
  Add(DoData,5726707,553,742)
  {
   Data=String(round( (%1 / ((%3+abs(%2))/300))-(%2)*2,%4))
   link(onEventData,472989:doWork1,[(597,748)(597,699)])
  }
  Add(HubEx,472989,585,693)
  {
   Angle=3
   link(onEvent,15321215:doWork2,[(589,664)])
  }
  Add(Hub,14492645,448,168)
  {
   InCount=2
   OutCount=5
   link(onEvent1,2122626:doWork2,[(470,174)(470,146)])
   link(onEvent2,13135093:doValue,[(490,181)(490,244)])
   link(onEvent3,3179870:doOperation,[(483,188)(483,153)])
   link(onEvent4,10899728:doOperation,[(474,195)(474,157)(443,157)(443,118)])
   link(onEvent5,16154425:doEvent1,[(474,202)(474,272)(282,272)(282,342)])
  }
  Add(Math,10899728,455,112)
  {
   OpType=3
   Op2=1.5
   Default=30
   link(onResult,14553885:doHeight,[(499,118)(499,97)(450,97)(450,76)])
  }
  Add(MathParse,14619068,329,371)
  {
   @Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=1
   MathStr="%1 / 2.5 "
   AngleMode=1
   link(onResult,14553885:doTop,[(411,377)(411,90)])
   link(X1,12550175:Var2,[(335,254)(48,254)])
  }
  Add(Hub,16154425,294,336)
  {
   link(onEvent1,5999133:doCalc,[(318,342)(318,335)])
   link(onEvent2,14619068:doCalc,[(318,349)(318,377)])
  }
  Add(Math,3179870,504,147)
  {
   OpType=2
   Op2=1.1
   Default=30
   link(onResult,14553885:doWidth,[(548,153)(548,111)(450,111)(450,69)])
  }
  Add(DoData,12873480,784,539)
  {
  }
  Add(GetDataEx,12550175,42,147)
  {
   link(Data,14086760:Height,[])
  }
  Add(Hub,13767139,91,28)
  {
   link(onEvent1,3826012:doEvent1,[(235,34)(235,216)])
   link(onEvent2,2911665:doEvent1,[(252,41)(252,279)])
  }
  Add(TrackBar,8882717,126,42)
  {
   Left=85
   Top=35
   Visible=1
   Max=300
   Min=-300
   Position=150
   link(onPosition,12740700:doEvent1,[])
  }
  Add(Hub,12740700,175,42)
  {
   InCount=2
   link(onEvent2,2033887:doText,[(227,55)(227,62)])
  }
  Add(Math,4070639,392,189)
  {
   OpType=3
   Op2=2.8
   Default=30
   link(onResult,14492645:doEvent1,[(436,195)(436,174)])
   link(Op1,14346336:Var2,[])
  }
  Add(Math,6654163,392,231)
  {
   OpType=3
   Op2=2
   Default=30
   link(onResult,7855591:doValue,[(485,237)(485,244)])
   link(Op1,14346336:Var1,[(398,213)(389,213)(389,180)])
  }
  Add(Hub,3826012,364,210)
  {
   link(onEvent1,4070639:doOperation,[(385,216)(385,195)])
   link(onEvent2,6654163:doOperation,[(385,223)(385,237)])
  }
  Add(GetDataEx,14346336,392,175)
  {
   link(Data,12550175:Var3,[(398,152)])
  }
  Add(Memory,6913377,630,49)
  {
   @Hint=#7:Толщина|
   Default=Integer(3)
   link(onData,4018710:doEvent1,[(674,55)(674,87)(611,87)(611,118)])
  }
  Add(Hub,11324101,420,567)
  {
   link(onEvent1,14553885:doText,[(448,573)(448,55)])
   link(onEvent2,11526556:onResult,[(822,580)(822,27)])
  }
  Add(If_else,11433014,126,455)
  {
   Type=3
   link(onTrue,3872806:doCompare,[])
   link(onFalse,9727000:doMessage,[(614,468)(614,608)])
   link(Op2,5511496:Var1,[(139,443)(288,443)(288,537)])
  }
  Add(Message,9727000,1071,602)
  {
   Message="Input value is out of MAX range!"
  }
  Add(If_else,3872806,182,455)
  {
   Type=1
   link(onTrue,1175819:doMessage,[(642,461)(642,650)])
   link(onFalse,295307:doValue,[(348,468)(348,482)])
   link(Op2,11463559:Var3,[(195,443)(342,443)])
  }
  Add(Message,1175819,1071,644)
  {
   Message="Input value is out of Min range!"
  }
  Add(Hub,6131807,581,49)
  {
   InCount=2
   link(onEvent1,6913377:doValue,[])
  }
  Add(Hub,6281007,833,161)
  {
   InCount=2
   OutCount=3
   link(onEvent1,11829184:doValue,[])
   link(onEvent2,15771391:doEvent1,[(859,174)(859,139)(422,139)(422,104)])
   link(onEvent3,11642599:doWork1,[(859,181)(859,218)(340,218)])
  }
  Add(Hub,15771391,434,98)
  {
   link(onEvent1,14553885:doSegColor,[(455,104)(455,62)])
  }
  Add(HubEx,11642599,336,252)
  {
   link(onEvent,12465343:doRefresh,[(447,258)(447,335)])
  }
END_SDK
Add(MainForm,5818658,35,112)
{
 @Hint=#8:(c) Aziz|
 Width=481
 Height=415
 Caption="Dream Knob 1.0"
 Position=1
 Point(onMouseWheel)
 Point(Width)
 Point(Height)
 link(onCreate,6678596:doInit,[(173,132)(173,370)])
}
Add(Label,3904486,343,329)
{
 Left=355
 Top=145
}
Add(Edit,2269443,98,266)
{
 Left=345
 Top=50
 Text="108"
 DataType=4
 link(onChange,6678596:doValue,[(205,272)(205,335)])
}
Add(BitBtn,7930152,98,406)
{
 Left=345
 Top=185
 Caption="Reset"
 link(onClick,8767528:doEvent1,[])
}
Add(Timer,7919437,287,147)
{
 Interval=500
 Enable=1
 link(onTimer,13129573:doEvent1,[])
}
Add(BitBtn,1632998,213,131)
{
 Left=335
 Top=220
 Width=85
 Height=50
 Caption="Demo"
 link(onClick,7919437:doTimer,[(266,137)(266,153)])
}
Add(RGB,6592141,413,203)
{
 link(onRGB,6678596:doColor,[(457,209)(457,335)(268,335)(268,384)])
 link(R,16595329:Random,[(419,191)(363,191)])
 link(G,11314125:Random,[(426,191)(405,191)])
 link(B,7270620:Random,[(433,191)(454,191)])
}
Add(Random,16595329,357,147)
{
 Max=255
 link(onRandom,11314125:doRandom,[])
}
Add(Random,11314125,399,147)
{
 Max=255
 link(onRandom,7270620:doRandom,[])
}
Add(Random,7270620,448,147)
{
 Max=255
 link(onRandom,6592141:doRGB,[(492,153)(492,181)(401,181)(401,209)])
}
Add(Random,3465738,357,203)
{
 Min=5
 Max=10
 link(onRandom,6678596:doThickness,[(401,209)(401,332)(268,332)(268,377)])
}
Add(Hub,13129573,329,147)
{
 OutCount=3
 link(onEvent1,16595329:doRandom,[])
 link(onEvent2,8968820:doNext,[(355,160)(355,188)(275,188)(275,216)])
 link(onEvent3,9318257:doRandom,[(350,167)(350,258)])
}
Add(Random,9318257,357,252)
{
 link(onRandom,2269443:doText,[(401,258)(401,265)(86,265)(86,272)])
}
Add(CounterEx,8968820,287,210)
{
 Max=4
 Point(onThroughMax)
 link(onThroughMax,3465738:doRandom,[(338,223)(338,209)])
}
Add(Hub,8767528,182,406)
{
 link(onEvent1,6678596:doClear,[(238,412)(238,342)])
 link(onEvent2,7919437:doStop,[(242,419)(242,160)])
}


--- Добавлено в 2023-04-06 17:07:42

Еще хочу сделать режим с прерывистыми полосками вместо сплошной дуги, будет классно смотреться.

--- Добавлено в 2023-04-06 17:12:39

Пытался сначала компонент IMG_Arc применить, но так и не разобрался как управлять линейно его дугой. Вот схема от экспериментов с IMG_Arc и другими ему подобными компонентами рисования, может кому сгодится:
Как вводить данные - щелкнуть по полю ввода, после этого данные слайдера пойдут в него.


Add(PointXY,15432519,672,231)
{
 X=10
 Y=100
 link(X,1367470:Var2,[(678,191)(685,191)])
 link(Y,2335014:Var2,[(685,191)(734,191)])
}
Add(PointXY,4895001,728,231)
{
 X=100
 Y=100
 link(X,376326:Var3,[(734,215)])
 link(Y,7985145:Var2,[(741,215)(734,215)])
}
Add(TrackBar,13584592,553,147)
{
 Left=105
 Top=255
 Max=200
 TickCount=10
 link(onPosition,13021332:doEvent1,[(590,153)(590,125)])
}
Add(Label,14703399,658,63)
{
 Left=125
 Top=290
}
Add(Hub,13021332,602,119)
{
 OutCount=3
 link(onEvent1,14703399:doText,[(624,125)(624,69)])
 link(onEvent2,13453328:doEvent,[(752,132)(752,524)])
 link(onEvent3,13895247:doEvent1,[(628,139)(628,261)(471,261)(471,384)])
}
Add(MainForm,13456546,385,371)
{
 @Hint=#20:by Aziz (c) 5.3.2023|
 Width=419
 Height=421
 Caption="Пример использования Img_Arc"
 DragForm=0
 Position=1
}
Add(PaintBox,13290742,511,378)
{
 Width=175
 Height=155
 Color=15780518
 link(onBeforeDraw,11099579:doDraw,[(555,384)(555,412)(499,412)(499,440)])
}
Add(PointHint,16326278,469,476)
{
 Info=#34:Координаты в формате Y * 65536 + X|
 VAlign=0
 Width=127
}
Add(Img_Arc,11099579,511,434)
{
 Point1=9830400
 Point2=150
 Size=3
 Point3=9830700
 Point4=6553600
 Point(Point1)
 Point(Point2)
 Point(Point3)
 Point(Point4)
 link(Bitmap,13290742:Bitmap,[])
 link(Point1,15432519:Point,[(531,334)(678,334)])
 link(Point2,4895001:Point,[(538,334)(734,334)])
 link(Point3,6386591:Point,[(545,348)(783,348)])
 link(Point4,888101:Point,[(552,348)(839,348)])
}
Add(Hub,13895247,483,378)
{
 InCount=2
 link(onEvent1,13290742:doClear,[(504,384)(504,391)])
 link(onEvent2,13290742:doRefresh,[(504,391)(504,384)])
}
Add(Edit,1419644,679,119)
{
 Left=20
 Top=310
 Text="100"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork1,[(800,139)(800,398)])
}
Add(Edit,6197125,679,168)
{
 Left=20
 Top=335
 Text="0"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork3,[(800,188)(800,412)])
}
Add(Edit,7898774,728,119)
{
 Left=80
 Top=310
 Text="100"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork2,[(824,139)(824,405)])
}
Add(Edit,13846114,728,168)
{
 Left=80
 Top=335
 Text="0"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork4,[(824,188)(824,419)])
}
Add(PointXY,6386591,777,231)
{
 X=10
 Y=100
 link(X,8280475:Var2,[(783,192)(791,192)])
 link(Y,6713658:Var2,[(790,192)(840,192)])
}
Add(PointXY,888101,833,231)
{
 X=100
 Y=100
 link(X,10388634:Var3,[(839,217)])
 link(Y,6031310:Var2,[(846,217)(840,217)])
}
Add(Edit,749927,785,121)
{
 Left=150
 Top=310
 Text="0"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork5,[(853,141)(853,426)])
}
Add(Edit,2911718,785,170)
{
 Left=150
 Top=335
 Text="0"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork7,[(853,190)(853,440)])
}
Add(Edit,118884,834,121)
{
 Left=210
 Top=310
 Text="0"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork6,[(878,141)(878,433)])
}
Add(Edit,1118448,834,170)
{
 Left=210
 Top=335
 Text="0"
 Point(onSetFocus)
 link(onSetFocus,13480356:doWork8,[(878,190)(878,447)])
}
Add(IndexToChanel,13453328,868,518)
{
 Count=8
 Point(Index)
 Point(Data)
 link(onEvent1,1419644:doText,[(912,524)(912,324)(667,324)(667,125)])
 link(onEvent2,7898774:doText,[(912,531)(912,328)(716,328)(716,125)])
 link(onEvent3,6197125:doText,[(912,538)(912,356)(667,356)(667,174)])
 link(onEvent4,13846114:doText,[(912,545)(912,359)(716,359)(716,174)])
 link(onEvent5,749927:doText,[(912,552)(912,340)(773,340)(773,127)])
 link(onEvent6,118884:doText,[(912,559)(912,343)(822,343)(822,127)])
 link(onEvent7,2911718:doText,[(912,566)(912,371)(773,371)(773,176)])
 link(onEvent8,1118448:doText,[(912,573)(912,375)(822,375)(822,176)])
 link(Index,13929717:Value,[])
}
Add(ChanelToIndex,13480356,889,392)
{
 Count=8
 Point(EndIdx)
 link(onIndex,6438728:doIndex,[(985,398)(985,384)])
}
Add(GetIndexData,6438728,1008,378)
{
 Count=8
 link(onIndex,10261365:doEvent1,[])
 link(Data1,1367470:Var3,[(1014,159)])
 link(Data2,2335014:Var3,[(1021,159)])
 link(Data3,376326:Var2,[(1028,298)(699,298)])
 link(Data4,7985145:Var3,[(1035,208)])
 link(Data5,8280475:Var3,[(1042,159)])
 link(Data6,6713658:Var3,[(1049,166)])
 link(Data7,10388634:Var2,[(1056,300)(811,300)])
 link(Data8,6031310:Var3,[(1063,208)])
}
Add(GetDataEx,1367470,679,154)
{
 link(Data,1419644:Text,[])
}
Add(GetDataEx,2335014,728,154)
{
 link(Data,7898774:Text,[])
}
Add(GetDataEx,376326,693,210)
{
 Angle=3
 link(Data,6197125:Text,[(685,215)])
}
Add(GetDataEx,7985145,728,203)
{
 link(Data,13846114:Text,[])
}
Add(GetDataEx,8280475,785,154)
{
 link(Data,749927:Text,[])
}
Add(GetDataEx,6713658,834,161)
{
 link(Data,118884:Text,[])
}
Add(GetDataEx,10388634,805,212)
{
 Angle=3
 link(Data,2911718:Text,[(791,217)])
}
Add(GetDataEx,6031310,834,203)
{
 link(Data,1118448:Text,[])
}
Add(Hub,10261365,1099,378)
{
 OutCount=4
 link(onEvent1,13895247:doEvent2,[(1125,384)(1125,388)(471,388)(471,391)])
 link(onEvent2,13929717:doValue,[(1125,391)(1125,433)(856,433)(856,475)])
 link(onEvent3,13456546:doCaption,[(1125,398)(1125,388)(373,388)(373,377)])
 link(onEvent4,12583233:doData,[(1134,405)(1134,398)])
}
Add(DoData,12583233,1155,392)
{
 link(onEventData,13584592:doPosition,[(1199,398)(1199,276)(541,276)(541,153)])
 link(Data,6438728:Var,[(1161,380)(1087,380)(1087,422)(1014,422)])
}
Add(Memory,13929717,868,469)
{
 Default=Integer(0)
}


Редактировалось 4 раз(а), последний 2023-04-06 17:12:39
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 522
Рейтинг: 167
#12: 2023-04-06 19:58:30 ЛС | профиль | цитата
Aziz писал(а):
Но он мне приснился оранжевым

Aziz,наверное такое только в страшном сне снится... судя по схеме, 130 Запутанных элементов
И честно , так и удалось понять как его крутить ..

Редактировалось 2 раз(а), последний 2023-04-06 20:02:56
карма: 4

0
Ответов: 1297
Рейтинг: 47
#13: 2023-04-07 00:58:18 ЛС | профиль | цитата
tig-rrr, насчет запутанности, ты еще моих по-настоящему запутанных не видел)) Как нибудь скину) И я вроде писал уже неоднократно, что нет времени и сил причесывать схемы или сразу аккуратно размещать элементы.. Поэтому, сколько себя помню на этом ресурсе, всегда мои схемы были сверх запутанными) Тут уж ничего не попишешь.. Я и так очень медленно продвигаюсь, а если еще буду тратить время на размышления как покрасивее провести линки, то о результатах можно забыть..

А крутить просто - тыкаешь и нажав кнопку мыши левую, двигаешь вверх - вниз или вправо влево в пределах панели. А то что он у тебя не крутился - наверное слишком быстро двигал, это тот глюк о котором я упомянул. Тормоза. Потом еще может у меня монитор 2К и я настроил его под себя - чтобы при случайных движениях не крутился - за это параметр в этом куске схемы отвечает:

Дельта = 5 сейчас

Add(Math,4054707,903,392)
{
 OpType=33
 Op2=2
 link(onResult,432243:doCompare,[])
}
Add(If_else,432243,952,392)
{
 Type=1
 Op2=Integer(5)
 link(onTrue,1885234:doData,[])
}
Add(SampleDelta,6626697,847,392)
{
 link(onCalcDelta,4054707:doOperation,[])
}
Add(Memory,14122141,798,392)
{
 link(onData,6626697:doCalcDelta,[])
}
Add(DoData,1885234,1001,392)
{
 link(Data,14122141:Value,[(1007,380)(905,380)(905,436)(804,436)])
}

А насчет страшного сна, чем не понравилось, поконкретнее, что неудобно ? Неужели не видел нигде в программах подобные крутилки? Я наподобие видел наверное где-то в софтовых синтах коих пересмотрел туеву хучу..

--- Добавлено в 2023-04-07 01:12:31

tig-rrr, а может ты пытался последнюю схему запустить для теста IMG_Arc ? Там да, ничего крутить не получится)

--- Добавлено в 2023-04-07 01:45:22

И, немаловажное добавление, критика желательна с конструктивными примерами "как надо" и "как лучше/красивее")

--- Добавлено в 2023-04-07 01:51:01

Вот решил поискать в архиве, нашел ВолкодЕр Галкова. Ничего не тормозит и минимум элементов, максимум математики..
Валкодер от Галкова

Add(MainForm,6658112,84,147)
{
 Left=20
 Top=105
 Width=442
 Height=311
 link(onCreate,5520208:doEvent1,[(124,167)(124,188)])
}
Add(ChildPanelEx,7041547,357,236)
{
 @Hint=#9:Валкодер||
 link(Freq,6578680:doText,[(421,242)(421,195)])
}
BEGIN_SDK
  Add(EditMultiEx,8788151,3,66)
  {
   WorkCount=#6:Create|4:Band|
   EventCount=#4:Freq|7:DisFreq|
   VarCount=#8:Position|6:Result|
   Width=755
   Height=683
   link(Create,14480247:doEvent1,[(36,72)(36,125)])
   link(Position,10997514:Var1,[(9,371)(115,371)(115,306)])
  }
  Add(Panel,6611581,91,77)
  {
   Left=30
   Top=30
   Width=360
   Height=206
   Color=12632256
   BevelOuter=1
   Point(doColor)
  }
  Add(Memory,13036953,175,266)
  {
   Default=Real(1.5)
   MakeExt(Default,скоростной корректор,Power)
  }
  Add(Memory,13895313,175,168)
  {
   Default=Integer(-1)
   link(onData,1039961:doCalc,[(223,174)(223,257)(104,257)(104,258)])
  }
  Add(MathParse,9274619,224,315)
  {
   @Hint=#40:Формирую точку-положение ручки валкодера|
   DataCount=3
   MathStr="cos (%1)*%3/3 + %2/2.4+65536*round(-sin (%1)*%2/3+%2/2.4)"
   ResultType=0
   AngleMode=1
   link(onResult,8430061:doDraw,[])
   link(X2,2013733:Var2,[])
   link(X3,16173336:Var2,[(244,308)(244,308)])
  }
  Add(MathParse,6501834,126,315)
  {
   @Hint=#28:Динамический корректор угла:|56:1) изменение мышьего уголка ограничивается 180 градусами|55:2) это изменение подвергается степенному преобразованию|45:3) и уже это становится изменением результата|38:______________________________________|0:|10:Внимание: |59:В формуле первый аргумент ДОЛЖЕН встретиться раньше второго|
   DataCount=3
   MathStr="(-%1+%2 + round(%1-%2,360))*(abs(-%1+%2 + round(%1-%2,360))+.0001)^(%3-1) + %0"
   ResultType=0
   AngleMode=1
   link(onResult,8887957:doEvent1,[])
   link(X1,10997514:Var2,[])
   link(X2,1039961:reCalc,[(139,296)(132,296)])
   link(X3,13036953:Value,[(146,307)(181,307)])
  }
  Add(GetDataEx,2013733,224,245)
  {
   link(Data,5005552:Var3,[(237,242)])
  }
  Add(GetDataEx,10997514,119,297)
  {
   link(Data,1039961:Result,[])
  }
  Add(PointXY,11308193,77,266)
  {
   @Hint=#25:Формирую размер валкодера|
   link(X,13392463:Var1,[(83,235)])
   link(Y,5005552:Var1,[(90,242)])
  }
  Add(HubEx,1812232,49,308)
  {
   link(onEvent,2371414:doDraw,[])
  }
  Add(GetDataEx,13392463,140,226)
  {
   link(Data,7824247:Width,[])
  }
  Add(GetDataEx,5005552,133,233)
  {
   link(Data,7824247:Height,[])
  }
  Add(Img_Ellipse,2371414,63,315)
  {
   Point2AsOffset=0
   Style=1
   BgColor=15793151
   Point(Point2)
   link(onDraw,6501834:doCalc,[(114,321)(114,321)])
   link(Bitmap,7325121:Var1,[(69,228)])
   link(Point2,11308193:Point,[])
  }
  Add(GetDataEx,7325121,105,219)
  {
   link(Data,7824247:Bitmap,[])
  }
  Add(Img_Ellipse,8430061,273,315)
  {
   Point2AsOffset=0
   Style=1
   Color=255
   BgColor=8421504
   Point(Point2)
   link(Bitmap,7325121:Var3,[(279,228)])
   link(Point2,9136247:reCalc,[])
  }
  Add(PaintBox,7824247,112,161)
  {
   Left=210
   Top=35
   Width=112
   Height=111
   Point(onMouseDown)
   Point(onMouseUp)
   Point(onMouseMove)
   Point(MouseX)
   Point(MouseY)
   Point(Height)
   Point(Width)
   link(onMouseDown,13895313:doValue,[])
   link(onMouseUp,13895313:doClear,[])
   link(onMouseMove,6447485:doCompare,[(162,188)(162,216)])
  }
  Add(Hub,8887957,175,315)
  {
   OutCount=3
   link(onEvent1,9274619:doCalc,[])
   link(onEvent2,10427705:doOperation,[(320,328)(320,258)])
   link(onEvent3,7824247:doRefresh,[(217,335)(217,254)(102,254)(102,167)])
  }
  Add(MathParse,9136247,280,266)
  {
   @Hint=#36:Фомирую точку-размер ручки валкодера|
   MathStr="%2/6 + 65536*round(%1/6)"
   ResultType=0
   AngleMode=1
   Point(reCalc)
   link(X1,2013733:Var3,[(286,254)])
   link(X2,16173336:Var3,[(293,247)])
  }
  Add(MathParse,1039961,119,252)
  {
   @Hint=#36:Определяю угловую координату мыша :)|
   DataCount=4
   MathStr="atan (%4/2 - %2, %1- %3/2 )"
   Default=135
   AngleMode=1
   Point(reCalc)
   link(X1,7824247:MouseX,[])
   link(X2,7824247:MouseY,[])
   link(X3,5005552:Var2,[])
   link(X4,13392463:Var2,[])
  }
  Add(GetDataEx,16173336,231,238)
  {
   link(Data,13392463:Var3,[(244,235)])
  }
  Add(If_else,6447485,175,210)
  {
   Op2=Integer(0)
   link(onTrue,1812232:doWork1,[(215,216)(215,250)(53,250)])
   link(Op1,13895313:Value,[])
  }
  Add(Math,10427705,336,252)
  {
   OpType=2
   Op2=-1
   ResultType=0
   link(onResult,8788151:Freq,[(563,258)(563,72)])
  }
  Add(Hub,14480247,49,119)
  {
   link(onEvent2,1812232:doWork2,[(91,132)(91,220)(39,220)(39,321)])
  }
END_SDK
Add(Edit,6578680,518,189)
{
 Left=80
 Top=250
 Width=85
}
Add(Hub,5520208,133,182)
{
 link(onEvent2,7041547:Create,[(261,195)(261,242)])
}


--- Добавлено в 2023-04-07 01:53:09

OGL Knob

Add(ChildPanel,5058451,315,224)
{
}
BEGIN_SDK
  Add(EditMulti,13047789,10,10)
  {
   WorkCount=1
   link(doWork1,15105157:doCaption,[(22,16)(22,48)])
  }
  Add(Panel,15105157,49,42)
  {
   Left=111
   Top=8
   Width=37
   Height=19
   Color=9079434
   Font=[MS Sans Serif,8,1,65535,1]
   Caption="0"
   BevelInner=0
   Alignment=2
  }
END_SDK
Add(MainForm,15610394,77,175)
{
 Left=20
 Top=105
 Width=257
 Height=324
 Color=9079434
 Caption="Индикатор"
 BorderStyle=3
 Point(MouseX)
 Point(MouseY)
 Point(onMouseMove)
 Point(onMouseUp)
 link(onCreate,15576604:doWork1,[(212,195)(212,286)])
}
Add(ChildPanel,16025864,315,175)
{
}
BEGIN_SDK
  Add(EditMulti,11923027,10,10)
  {
   WorkCount=1
   Width=510
   Height=270
   link(doWork1,8420412:doCompare,[(33,16)(33,118)])
  }
  Add(Label,4013508,378,28)
  {
   Left=-154
   Top=-8
   Width=514
   Height=22
   Font=[Courier New,12,0,0,204]
   Transparent=0
   Caption="|||||||||||||||||||||||||||||||||||||||||||||||||||"
   Point(Left)
   Point(doLeft)
  }
  Add(StrCat,135228,112,112)
  {
   Str1="-"
   link(onStrCat,3938152:doWork2,[])
  }
  Add(Panel,6782736,56,210)
  {
   Left=25
   Top=30
   Width=200
   BorderStyle=1
   BorderWidth=0
   BevelInner=0
   BevelWidth=0
  }
  Add(Label,12337365,231,14)
  {
   Left=-144
   Width=494
   Height=22
   Font=[Courier New,12,0,0,204]
   Transparent=0
   Caption="| | | | | | | | | | | | | | | | | | | | | | | | |"
   Point(Left)
   Point(doLeft)
  }
  Add(Label,8694476,308,21)
  {
   Left=-153
   Top=19
   Width=524
   Height=23
   Font=[Arial,12,1,0,204]
   Transparent=0
   Caption="-60    -50    -40     -30    -20    -10       0       10     20      30     40      50     60"
   AutoSize=1
   Point(Left)
   Point(doLeft)
  }
  Add(ChildPanel,5174903,112,210)
  {
  }
  BEGIN_SDK
    Add(EditMulti,13561761,10,10)
    {
    }
    Add(Panel,9524959,35,105)
    {
     Left=100
     Width=1
     Height=22
     Color=255
     BorderWidth=0
     BevelInner=0
     BevelWidth=0
     Point(doColor)
    }
  END_SDK
  Add(Image,12110074,168,210)
  {
   Width=200
   Height=50
   Picture=[ZIP6675000078DAEDD2474B5D41140770F32DF211B20C5964ADB163C78E1D3B76ECD8157B57EC5DB177C5DE157B57EC5DB177C5869BFCD12CB29C4D2E33E11CB88FC77DF3CE9CF2FBA561E72DF3113FF17CC33381E7079E2F325F3FDE7FFFF3FBDF212727272F2FAFA0A0A0A4A4A4A2A2A2AAAAAAAEAEAEA9A9A9ADADADA3A3A3ABABABAFAF6F6868686C6C6C6262626666666161616969696565656363636767E7E0E0E0E8E8E8ECECECE2E2E2E6E6E6E1E1E1E9E9E9EDEDEDEBEBEBEFEF1F1010101818181C1C1C1A1A1A1E1E1E1111111515151313131B1B1B1F1F9F9898989C9C9C9A9A9A9E9E9E9191919999999D9D9D9B9B9B9F9F5F5858585C5C5C5A5A5A5656565E5E5E5959595D5D5D5B5B5B5F5FDFD8D8D8DCDCDCD2D2D2DADADADEDEDED9D9D9DDDDDDDBDBDBDFDF3F3838383434343232323A3A3A3E3E3E3939393D3D3D3B3B3B3737B7B0B0B0B4B4B4BCBCBCBABABABEBEBEB9B9B9B5B5B5B3B3B3B7B7777070707474747C7C7C7A7A7A7E7E7E7171717575757373737777F7F0F0F0F8F8F8FCFCFCF2F2F2F6F6F6FEFE8E4F7C7F7A7AC27BFC8A333889F3F8D7D9D91932200FB2212732233F6EC15DB811F7E276D4804AE6E7E751156A4385A813D5A2E6E1E161D48F2ED00B3A425F1D1D1D6D6D6D6813FDA26BF48E09D4D4D45455555554546032980FA65454545450509097979793939395958549629E69696929292949494909090971717198797474746464245610161616121212141484ED60477E7E7E3E3E3E5E5E5ED89DBBBB3B9688553A393961ADF6F6F6B6B6B6D6D6D65837966E6E6E6E6A6A0A09464646200118E001245A5A5A1A1A1A6A6A6AC0034280044EFFD415424A57030303E44A5057484EAEC8158B2B04B9FA74051BE44A505768504A57333333E44A505728835C912B165738CCADABA6A626295D4111B912D415825C912B165728985B571B1B1BE48A1F5748CBADABBEBE3E72C58F2B5959596E5D959494902B72C5E20AAD71EBEAE4E4845C912B1657535353E48A5CB1B86A6868205782BAC231295D6108E48A5C89EE6A6D6D8D5C09EA0AA54AE9AAA7A7875C09EA0A21A52B8C8B5C912BD15D21C815B9627135313141AE047585ABC915B962718503DCBAAAABAB93D2D5FDFD3DB912D415DA2757E48AC5158AE4D6D5CACA0AB9E2C7155271EBAAABAB8B5C912B16571814B922572CAED00EB7AE0E0F0FC9153FAE7029B7AEC6C6C6C815B962718591922B72C5E20A8D73EBEAF6F6965C912B72F57FBB4248E90AC3275782BA3230302057E44A7457189194AEF6F7F7C995A0AED08894AE10E44A5057B88E5C912B1657CACACADCBAC230A574757D7D4DAE04758596C915B9627185C2B875B5B8B848AEF871A5A7A7C7AD2B8C9D5C912B1657180EB922572CAED002B7AE767777C915B962718505912B72C5E20A63245782BA52545494D2159AE5D6D5E5E525B922572CAEB04A7225A82B5757577245AE585C21C8D5A7ABD7D7577225A82B8C454A57DBDBDBE44A5057285E4A57580DB9E2C1D56FF65E53B8]
  }
  Add(Math,2695736,308,119)
  {
   ResultType=0
   link(onResult,8694476:doLeft,[(354,125)(354,109)(296,109)(296,34)])
   link(Op2,3493806:Value,[])
  }
  Add(Math,10594193,231,112)
  {
   ResultType=0
   link(onResult,12337365:doLeft,[(280,118)(280,55)(219,55)(219,27)])
   link(Op2,12385726:Value,[])
  }
  Add(Hub,5385397,175,112)
  {
   OutCount=3
   link(onEvent1,10594193:doOperation,[])
   link(onEvent2,2695736:doOperation,[])
   link(onEvent3,73217:doOperation,[])
  }
  Add(Memory,3493806,315,70)
  {
   Point(Data)
   link(Data,8694476:Left,[])
  }
  Add(Memory,12385726,238,63)
  {
   Point(Data)
   link(Data,12337365:Left,[])
  }
  Add(Hub,7248372,175,63)
  {
   OutCount=3
   link(onEvent1,12385726:doValue,[])
   link(onEvent2,3493806:doValue,[])
   link(onEvent3,5588523:doValue,[])
  }
  Add(Timer,541812,112,63)
  {
   Interval=100
   AutoStop=1
   link(onTimer,7248372:doEvent1,[])
  }
  Add(If_else,8420412,56,112)
  {
   Type=2
   Op2=Integer(0)
   link(onTrue,135228:doStrCat,[])
   link(onFalse,3038776:doReplace,[(100,125)(100,160)])
  }
  Add(Replace,3038776,112,154)
  {
   SubStr="-"
   link(onReplace,3938152:doWork3,[(158,160)])
  }
  Add(HubEx,3938152,154,105)
  {
   link(onEvent,5385397:doEvent1,[])
  }
  Add(Memory,5588523,385,77)
  {
   Point(Data)
   link(Data,4013508:Left,[])
  }
  Add(Math,73217,378,126)
  {
   ResultType=0
   link(onResult,4013508:doLeft,[(428,132)(428,69)(366,69)(366,41)])
   link(Op2,5588523:Value,[])
  }
END_SDK
Add(Hub,9683366,196,175)
{
 link(onEvent1,1360622:doOperation,[])
 link(onEvent2,5058451:doWork1,[(272,188)(272,230)])
}
Add(Math,1360622,259,175)
{
 OpType=2
 Op2=4
 ResultType=0
 link(onResult,16025864:doWork1,[])
}
Add(ChildPanel,15576604,315,280)
{
 link(onEvent1,9683366:doEvent1,[(361,286)(361,265)(184,265)(184,181)])
}
BEGIN_SDK
  Add(EditMulti,13281966,21,21)
  {
   EventCount=1
   WorkCount=1
   Width=559
   Height=473
   link(doWork1,16299401:doEvent1,[(45,27)(45,349)])
  }
  Add(Panel,3575824,84,35)
  {
   Left=25
   Top=90
   Width=200
   Height=200
   Color=9079434
   BevelInner=0
   Point(Handle)
   Point(MouseX)
   Point(MouseY)
   Point(Width)
   Point(Height)
   Point(onMouseDown)
   Point(onMouseUp)
   Point(onMouseMove)
   link(onMouseDown,16266450:doData,[(189,48)(189,76)])
   link(onMouseUp,7325099:doData,[(180,55)(180,153)])
   link(onMouseMove,5023578:doEvent1,[(171,62)(171,125)])
  }
  Add(GL_Main,12986311,196,343)
  {
   Color=9079434
   link(onInit,12198675:doInit,[])
   link(onViewPort,3410847:doPerspective,[(236,356)(236,391)])
   link(Handle,3575824:Handle,[(202,330)(90,330)])
  }
  Add(Timer,9506849,56,392)
  {
   Interval=20
   Enable=1
   link(onTimer,1049454:doEvent1,[])
  }
  Add(GL_GTools,771925,154,392)
  {
   Point(doClear)
   Point(doPushMatrix)
   Point(doPopMatrix)
  }
  Add(Hub,1049454,98,392)
  {
   OutCount=6
   link(onEvent1,771925:doClear,[])
   link(onEvent2,771925:doPushMatrix,[])
   link(onEvent3,16314175:doWork1,[(137,412)(137,440)])
   link(onEvent4,771925:doPopMatrix,[(142,419)(142,412)])
   link(onEvent5,12986311:doFlip,[(146,426)(146,363)])
  }
  Add(Hub,16299401,56,343)
  {
   OutCount=3
   link(onEvent1,12986311:doInit,[])
   link(onEvent2,12986311:doViewPort,[])
   link(onEvent3,9506849:doTimer,[(100,363)(100,381)(44,381)(44,398)])
  }
  Add(GL_Options,10513853,413,343)
  {
   Flag=1
   link(onEvent,14989894:doEnabled,[])
  }
  Add(GL_Perspective,3410847,245,385)
  {
   Fovy=20
  }
  Add(GL_Options,4378486,371,343)
  {
   Flag=3
  }
  Add(GL_Options,5809249,329,343)
  {
   Flag=2
   link(onEvent,10513853:doEnabled,[])
  }
  Add(GL_GluTools,12198675,245,343)
  {
   Texture=0
   link(onInit,1101264:doEnabled,[])
  }
  Add(GL_Light,14989894,462,343)
  {
   Index=1
   Diffuse=8026746
   Specular=16711680
   link(onEnabled,14989894:doMove,[(506,349)(506,353)(450,353)(450,356)])
   link(Point,12614154:Point3D,[(468,331)(499,331)(499,386)(517,386)])
  }
  Add(GL_Options,1101264,287,343)
  {
   link(onEvent,5809249:doEnabled,[])
  }
  Add(GL_Point3D,12614154,511,343)
  {
   Y=0.5
   Z=0.5
  }
  Add(MathParse,1039961,91,105)
  {
   @Hint=#36:Определяю угловую координату мыша :)|
   DataCount=4
   MathStr="atan (%4/2 - %2, %1 - %3/2 )"
   AngleMode=1
   Point(reCalc)
   link(onResult,16116031:doCalc,[(135,111)(135,141)(79,141)(79,153)])
   link(X1,3575824:MouseX,[])
   link(X2,3575824:MouseY,[])
   link(X3,3575824:Width,[])
   link(X4,3575824:Height,[])
  }
  Add(MathParse,16116031,91,147)
  {
   @Hint=#28:Сдвиг угловых координат мыша|
   DataCount=1
   MathStr="(abs(((1 - sign(%1)) * abs(sign(%1)) * 180) - abs(%1))-90) mod 360"
   ResultType=0
   link(onResult,10526018:doCalc,[(131,153)(131,174)(58,174)(58,202)])
   link(X1,1039961:Result,[])
  }
  Add(DoData,16266450,294,70)
  {
   link(onEventData,11293263:doEvent2,[(334,76)(334,83)])
   link(Data,2251930:Value,[])
  }
  Add(Memory,2251930,294,28)
  {
   Default=Integer(1)
  }
  Add(IndexToChanel,12881417,427,119)
  {
   Point(Data)
   Point(Index)
   link(onEvent2,1039961:doCalc,[(463,132)(463,168)(75,168)(75,111)])
   link(Data,2237627:Value,[(433,107)(401,107)(401,163)(370,163)])
   link(Index,567749:Value,[])
  }
  Add(Memory,567749,434,70)
  {
   Default=Integer(0)
  }
  Add(DoData,7325099,294,147)
  {
   link(onEventData,11293263:doEvent3,[(334,153)(334,90)])
   link(Data,6079886:Value,[])
  }
  Add(Memory,6079886,294,105)
  {
   Default=Integer(0)
  }
  Add(Hub,11293263,364,70)
  {
   InCount=4
   link(onEvent1,567749:doValue,[])
  }
  Add(Memory,2237627,364,119)
  {
   Default=Integer(0)
   link(onData,12881417:doEvent,[])
  }
  Add(MathParse,10526018,140,196)
  {
   @Hint=#27:Получение текущего значения|
   MathStr="(abs(((1+sign(%1)) * abs(sign(%1)) * 180) -abs(%1))) * %2 / 270"
   ResultType=0
   link(onResult,7371988:doEvent1,[(184,202)(184,244)(79,244)(79,279)])
   link(X2,3982609:Value,[(153,188)(146,188)])
  }
  Add(Memory,3982609,140,147)
  {
   Default=Integer(90)
  }
  Add(Timer,12505582,189,189)
  {
   Interval=70
   link(onTimer,795195:doNext,[])
  }
  Add(Hub,5023578,238,119)
  {
   link(onEvent1,2237627:doValue,[])
   link(onEvent2,795195:doReset,[(282,132)(282,174)(226,174)(226,209)])
  }
  Add(DoData,5832806,238,77)
  {
   link(onEventData,11293263:doEvent4,[(317,83)(317,97)])
   link(Data,14957857:Value,[])
  }
  Add(Memory,14957857,238,28)
  {
   Default=Integer(0)
  }
  Add(Counter,795195,245,189)
  {
   Max=10
   link(onNext,7713222:doCase,[])
  }
  Add(Case,7713222,294,189)
  {
   Value=Integer(10)
   DataOnTrue=Integer(0)
   link(onTrue,5832806:doData,[(340,202)(340,138)(226,138)(226,83)])
  }
  Add(If_else,8791157,245,273)
  {
   Type=2
   Op2=Integer(60)
   link(onTrue,14916979:doOperation,[])
  }
  Add(Math,14916979,364,273)
  {
   OpType=1
   Op2=120
   link(onResult,11106670:doEvent2,[(425,279)(425,265)])
  }
  Add(If_else,5459854,245,231)
  {
   Type=1
   Op2=Integer(60)
   link(onTrue,14003187:doEvent1,[])
  }
  Add(Hub,9831368,189,245)
  {
   link(onEvent1,5459854:doCompare,[(229,251)(229,237)])
   link(onEvent2,8791157:doCompare,[(226,258)(226,279)])
  }
  Add(Hub,11106670,434,252)
  {
   InCount=2
   link(onEvent1,13281966:onEvent1,[(509,258)(509,27)])
  }
  Add(MultiElement,16314175,154,434)
  {
   link(Data1,16116031:Result,[(160,338)(97,338)])
  }
  BEGIN_SDK
    Add(EditMulti,821312,21,21)
    {
     WorkCount=1
     DataCount=1
     Width=748
     Height=508
     link(doWork1,1447528:doDraw,[(67,27)(67,46)])
    }
    Add(MultiElement,9310891,58,173)
    {
     link(onEvent1,16444830:doDraw,[])
     link(Data1,821312:Data1,[(64,97)(27,97)])
    }
    BEGIN_SDK
      Add(EditMulti,4359962,10,10)
      {
       EventCount=1
       WorkCount=1
       DataCount=2
       Width=223
       Height=109
       link(doWork1,8079493:doRotate,[(61,16)(61,55)])
      }
      Add(GL_Rotate,8079493,112,49)
      {
       Z=1
       link(onRotate,4359962:onEvent1,[(188,55)(188,16)])
       link(Angle,4359962:Data1,[(118,29)(16,29)])
      }
    END_SDK
    Add(GL_Disk,16444830,114,173)
    {
     OutRadius=0.9
     Slices=30
     Stacks=30
     link(onDraw,1149682:doTranslate,[])
    }
    Add(Gl_Translate,1149682,163,173)
    {
     Y=0.7
     Z=-0.25
     link(onTranslate,11214035:doDraw,[])
    }
    Add(GL_Sphere,11214035,212,173)
    {
     Radius=0.3
     Slices=30
     Stacks=30
     link(onDraw,11030418:doTranslate,[])
    }
    Add(Gl_Translate,11030418,261,173)
    {
     Y=0.27
     Z=0.25
     link(onTranslate,11857953:doPushAttrib,[])
    }
    Add(GL_Sphere,5983118,415,173)
    {
     Radius=0.025
     Slices=10
     Stacks=10
     link(onDraw,8490103:doPopAttrib,[])
    }
    Add(GL_GTools,11857953,317,173)
    {
     Point(doPushAttrib)
     link(onEvent,1804440:doSet,[])
    }
    Add(GL_GTools,8490103,464,173)
    {
     Point(doPopAttrib)
    }
    Add(GL_Material,1804440,366,173)
    {
     Diffuse=0
     Specular=16776960
     Emission=16711680
     Shininess=50
     link(onSet,5983118:doDraw,[])
    }
    Add(GL_Torus,12359612,415,131)
    {
     inRadius=0.202
     outRadius=0.9
     Sides=16
     Rings=50
     link(onDraw,6260330:doPopMatrix,[])
    }
    Add(Gl_Translate,16432901,366,131)
    {
     Z=-0.2
     link(onTranslate,12359612:doDraw,[])
    }
    Add(GL_GTools,8789336,317,131)
    {
     Point(doPushMatrix)
     link(onEvent,16432901:doTranslate,[])
    }
    Add(GL_GTools,6260330,464,131)
    {
     Point(doPopMatrix)
     link(onEvent,9310891:doWork1,[(508,137)(508,158)(46,158)(46,179)])
    }
    Add(GL_Disk,14760710,212,131)
    {
     InRadius=1.2
     OutRadius=2
     Slices=30
     Stacks=30
     link(onDraw,4857150:doPopMatrix,[])
    }
    Add(GL_Torus,1447528,114,40)
    {
     inRadius=0.14
     outRadius=1.21
     Sides=16
     Rings=50
     link(onDraw,169790:doPushMatrix,[])
    }
    Add(Gl_Translate,14052653,163,131)
    {
     Z=0.135
     link(onTranslate,14760710:doDraw,[])
    }
    Add(GL_GTools,11930124,114,131)
    {
     Point(doPushMatrix)
     link(onEvent,14052653:doTranslate,[])
    }
    Add(GL_GTools,4857150,261,131)
    {
     Point(doPopMatrix)
     link(onEvent,8789336:doPushMatrix,[])
    }
    Add(GL_GTools,169790,163,40)
    {
     Point(doPushMatrix)
     link(onEvent,7812187:doPushAttrib,[])
    }
    Add(GL_GTools,13452770,464,89)
    {
     Point(doPopMatrix)
     link(onEvent,11930124:doPushMatrix,[(508,95)(508,116)(102,116)(102,137)])
    }
    Add(GL_Sphere,5815883,352,40)
    {
     Radius=0.015
     Slices=10
     Stacks=10
     link(onDraw,140046:doTranslate,[(394,46)(394,77)(102,77)(102,95)])
    }
    Add(GL_GTools,7812187,212,40)
    {
     Point(doPushAttrib)
     link(onEvent,2297635:doSet,[])
    }
    Add(GL_GTools,10165953,415,89)
    {
     Point(doPopAttrib)
     link(onEvent,13452770:doPopMatrix,[])
    }
    Add(GL_Material,2297635,268,40)
    {
     Diffuse=0
     Specular=255
     Emission=128
     Shininess=50
     link(onSet,11804416:doTranslate,[])
    }
    Add(Gl_Translate,11804416,310,40)
    {
     X=-1.1
     Z=0.3
     link(onTranslate,5815883:doDraw,[])
    }
    Add(Gl_Translate,140046,114,89)
    {
     X=2.2
     link(onTranslate,7035382:doDraw,[])
    }
    Add(GL_Sphere,7035382,163,89)
    {
     Radius=0.015
     Slices=10
     Stacks=10
     link(onDraw,9891782:doTranslate,[])
    }
    Add(Gl_Translate,9891782,212,89)
    {
     X=-1.1
     Y=1.1
     link(onTranslate,13860135:doDraw,[])
    }
    Add(GL_Sphere,13860135,261,89)
    {
     Radius=0.015
     Slices=10
     Stacks=10
     link(onDraw,3846578:doTranslate,[])
    }
    Add(Gl_Translate,3846578,317,89)
    {
     Y=-2.2
     link(onTranslate,1147034:doDraw,[])
    }
    Add(GL_Sphere,1147034,366,89)
    {
     Radius=0.015
     Slices=10
     Stacks=10
     link(onDraw,10165953:doPopAttrib,[])
    }
  END_SDK
  Add(Case,8468842,140,273)
  {
   Value=Integer(60)
   DataOnTrue=Integer(0)
   link(onTrue,11293263:doEvent1,[(350,286)(350,76)])
  }
  Add(Hub,7371988,91,273)
  {
   link(onEvent1,8468842:doCase,[])
   link(onEvent2,9831368:doEvent1,[(128,286)(128,251)])
  }
  Add(Memory,11807718,364,224)
  {
   link(onData,11106670:doEvent1,[(425,230)(425,258)])
  }
  Add(Hub,14003187,294,231)
  {
   InCount=2
   link(onEvent1,11807718:doValue,[(355,237)(355,230)])
  }
END_SDK


Редактировалось 9 раз(а), последний 2023-04-07 01:55:19
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 876
Рейтинг: 187
#14: 2023-04-07 07:09:55 ЛС | профиль | цитата
Aziz писал(а):
Dream Knob 1.0 - кноб (крутилка, регулятор)

Извини, схема …… - просто нет нематерных слов чтобы описать то, что я увидел.
Три варианта (3 разных подхода). Управление – колёсиком мышки.
https://disk.yandex.ru/d/TDxL0T-XnbB1SQ
https://disk.yandex.ru/d/NgC3w2PF0ZmTPQ
https://disk.yandex.ru/d/8brpFRYmA51bFQ
Все картинки из интернета. На Yandex диске из-за размера.
карма: 18

0
Ответов: 1297
Рейтинг: 47
#15: 2023-04-07 10:09:10 ЛС | профиль | цитата
Gunta, я же уже выше написал что ЛУЧШЕ читаемости никогда не будет.. Ну не в силах я. Зачем меня еще раз в это тыкать носом? Невежливо как-то. И что мне теперь прикажешь делать? Хочешь удалю все свои схемы отсюда и больше не буду ими делиться? Так лучше по твоему? Что мне, уже в подписи это написать чтобы запомнили? Что я не художник - дизайнер схем. Вот и не хочется больше ничего выкладывать, а только качать. Спасибо за схемы, какие бы они не были, я никогда не буду критиковать дающего.. Если бы я ставил целью идеальную схему сделать, я бы об этом написал. Делал ДЛЯ СЕБЯ, а не для форума или конкурса по читаемости схем.

--- Добавлено в 2023-04-07 10:22:39

И что же в этой схеме матерного ? Схема как схема. Я могу и похуже и запутаннее. Это же моя фирменная личная азизовская обфускация кода) Матерые Халявщики (кому лень чуть мозг напрячь чтобы разобраться) явно не у дел) А вы что думали, я тут бесплатно буду свой исходный код раздавать?))

--- Добавлено в 2023-04-07 10:27:43

Твои схемы конечно проще, но там нет управления мышью и по дизайну это совсем не рисованные Кнобы нужные мне. Эти трудно на практике использовать - они не ресайзятся и не генерируются динамически как мои и меньше функционала. Нет проверки по диапазону, предустановки дефолтной и многого другого. Мои кнобы могут даже отрицательные значения как генерировать так и отображать, предустанавливаться. Так и неполный диапазон, когда минимальное значение больше нуля. Отсюда и сложность моей схемы. Лучше бы помог убрать тормоза с отрисовкой в моей схеме, там не так уж сложно понять логику работы если развито логическое мышление.

--- Добавлено в 2023-04-07 10:37:30

Вариант с полосками (сырой)


Add(ChildPanelEx,6678596,280,329)
{
 link(onResult,3904486:doText,[])
}
BEGIN_SDK
  Add(EditMultiEx,11526556,21,21)
  {
   WorkCount=#7:doValue|7:doClear|10:doMinValue|10:doMaxValue|16:doPresisionValue|6:doInit|11:doThickness|7:doColor|
   EventCount=#8:onResult|
   VarCount=#5:Value|
   Width=1189
   Height=844
   link(doValue,11433014:doCompare,[(73,27)(73,461)])
   link(doClear,295307:doClear,[(252,34)(252,489)])
   link(doMinValue,3734854:doValue,[(207,41)(207,496)])
   link(doMaxValue,3231430:doValue,[(227,48)(227,496)])
   link(doPresisionValue,11876470:doValue,[(277,55)(277,496)])
   link(doInit,13767139:doEvent1,[(56,62)(56,34)])
   link(doThickness,6131807:doEvent2,[(301,69)(301,62)])
   link(doColor,6281007:doEvent2,[(427,76)(427,174)])
   link(Value,8433487:Result,[(27,732)(377,732)])
  }
  Add(Panel,14086760,35,105)
  {
   Left=60
   Top=40
   Width=200
   Height=200
   Point(Width)
   Point(Height)
   Point(onMouseWheel)
   Point(onShow)
   Point(onSetFocus)
   link(onMouseWheel,12871532:doCompare,[(83,118)(83,286)])
  }
  Add(Img_Point,10361775,511,392)
  {
   Color=33023
   Size=30
   Point(X)
   Point(Y)
   Point(Size)
   Point(Color)
   link(Size,6666965:Result,[(538,310)(573,310)])
  }
  Add(PaintBox,12465343,616,329)
  {
   Left=2
   Top=2
   Width=587
   Height=535
   Align=5
   Color=-16777215
   WinStyle=1
   ColorSp=0
   Point(onClick)
   Point(MouseX)
   Point(MouseY)
   Point(onMouseMove)
   Point(onDblClick)
   Point(onMouseWheel)
   link(onMouseMove,12814260:doCompare,[])
   link(onDblClick,14755892:doOpen,[(709,356)(709,167)])
  }
  Add(MathParse,14307840,518,329)
  {
   @Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=4
   MathStr="%3 + %2 * cos (%1 - %4)"
   AngleMode=1
   link(X2,9867155:Var2,[(531,299)(510,299)])
   link(X3,11880627:Var2,[(538,299)(552,299)])
   link(X4,12635440:Var2,[(545,316)(622,316)])
  }
  Add(CounterEx,10043336,448,406)
  {
   Max=10
   Point(doPrev)
   Point(doValue)
   Point(onThroughMax)
   Point(doMax)
   link(onThroughMax,7556766:doEvent1,[])
  }
  Add(MathParse,16095580,567,329)
  {
   @Hint=#30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=4
   MathStr="%3 + %2 * sin(-(%1 - %4)) "
   AngleMode=1
   link(X2,9867155:Var3,[(580,285)])
   link(X3,11880627:Var3,[(587,292)])
   link(X4,12635440:Var1,[(594,299)])
  }
  Add(Hub,8911218,476,329)
  {
   OutCount=3
   link(onEvent1,14307840:doCalc,[])
   link(onEvent2,16095580:doCalc,[(528,342)(528,335)])
   link(onEvent3,328943:doEvent1,[(502,349)(502,363)(464,363)(464,377)])
  }
  Add(Memory,13135093,504,238)
  {
   @Hint=#6:Радиус|
   Default=Integer(150)
   link(onData,12991355:doWork3,[(552,244)])
  }
  Add(Memory,7855591,546,238)
  {
   @Hint=#8:смещение|
   Default=Integer(240)
  }
  Add(GetDataEx,9867155,504,280)
  {
   link(Data,13135093:Value,[])
  }
  Add(GetDataEx,11880627,546,287)
  {
   link(Data,7855591:Value,[])
  }
  Add(TrackBar,16036997,532,49)
  {
   Left=20
   Top=5
   Min=1
   Position=5
  }
  Add(For,4971670,245,245)
  {
   End=300
   link(onEvent,8911218:doEvent1,[(377,251)(377,335)])
   link(onStop,11642599:doWork2,[])
   link(End,13509061:Var2,[])
  }
  Add(Memory,10242442,623,238)
  {
   Default=Integer(-30)
  }
  Add(GetDataEx,12635440,616,294)
  {
   Angle=1
   link(Data,10242442:Value,[(629,299)])
  }
  Add(Hub,7396834,336,182)
  {
   InCount=5
   OutCount=4
   link(onEvent2,4971670:doFor,[(362,195)(362,223)(233,223)(233,251)])
  }
  Add(Memory,9730464,252,182)
  {
   link(onData,14727359:doEvent1,[])
  }
  Add(SampleDelta,2751912,623,392)
  {
   link(onCalcDelta,6570741:doWork3,[(681,398)])
   link(Data,12465343:MouseX,[])
  }
  Add(Math,11944055,77,182)
  {
   link(onResult,2369521:doCompare,[])
   link(Op2,11365138:Var1,[(90,170)(186,170)(186,222)])
  }
  Add(If_else,12814260,672,343)
  {
   Op2=Integer(0)
   link(onTrue,12143584:doEvent1,[(716,349)(716,381)(576,381)(576,412)])
  }
  Add(Memory,11835883,728,392)
  {
   Default=Integer(0)
  }
  Add(GetDataEx,11365138,252,217)
  {
   link(Data,9730464:Value,[])
  }
  Add(SampleDelta,6102838,623,441)
  {
   link(onCalcDelta,7688841:doValue,[(667,447)(667,454)])
   link(Data,12465343:MouseY,[(629,401)(636,401)])
  }
  Add(Hub,12143584,588,406)
  {
   link(onEvent1,2751912:doCalcDelta,[(612,412)(612,398)])
   link(onEvent2,6102838:doCalcDelta,[(612,419)(612,447)])
  }
  Add(HubEx,6570741,677,385)
  {
   Angle=3
   link(onEvent,14122141:doValue,[(681,382)(739,382)(739,398)])
  }
  Add(Math,7511346,728,448)
  {
   OpType=1
   link(onResult,6570741:doWork2,[(772,454)(772,422)(672,422)(672,391)])
   link(Op1,16215539:Var2,[])
   link(Op2,7688841:Value,[(741,429)(713,429)(713,485)(685,485)])
  }
  Add(Memory,7688841,679,448)
  {
   Default=Integer(-30)
   link(onData,7511346:doOperation,[])
  }
  Add(If_else,2369521,147,182)
  {
   Type=2
   Op2=Integer(0)
   link(onTrue,14260345:doCompare,[])
  }
  Add(If_else,14260345,189,182)
  {
   Type=1
   link(onTrue,11434397:doOperation,[(226,188)(226,97)])
   link(Op2,16294626:Value,[(202,142)(174,142)])
  }
  Add(Hub,636877,49,182)
  {
   InCount=2
   OutCount=1
   link(onEvent1,11944055:doOperation,[])
  }
  Add(Math,4054707,903,392)
  {
   OpType=33
   Op2=2
   link(onResult,432243:doCompare,[])
  }
  Add(If_else,432243,952,392)
  {
   Type=1
   Op2=Integer(5)
   link(onTrue,1885234:doData,[])
  }
  Add(SampleDelta,6626697,847,392)
  {
   link(onCalcDelta,4054707:doOperation,[])
  }
  Add(Memory,14122141,798,392)
  {
   link(onData,6626697:doCalcDelta,[])
  }
  Add(DoData,1885234,1001,392)
  {
   link(onEventData,636877:doEvent1,[(1045,398)(1045,293)(30,293)(30,188)])
   link(Data,14122141:Value,[(1007,380)(905,380)(905,436)(804,436)])
  }
  Add(Math,6666965,567,196)
  {
   OpType=3
   Op2=5
   Default=30
   link(onResult,7396834:doEvent3,[(611,202)(611,190)(324,190)(324,202)])
   link(Op1,9867155:Var1,[(573,184)(501,184)(501,285)])
   link(Op2,6913377:Value,[(580,138)(636,138)])
  }
  Add(Hub,14727359,301,182)
  {
   OutCount=3
   link(onEvent1,7396834:doEvent1,[])
   link(onEvent2,13758681:doEvent1,[(327,195)(327,370)(240,370)(240,545)])
  }
  Add(LedNumber,14553885,462,49)
  {
   Left=40
   Top=45
   Width=185
   Height=110
   Color=-16777215
   Font=[MS Sans Serif,8,0,33023,1]
   Text="0"
   SegColor=33023
   Point(doText)
   Point(doSegColor)
   Point(doWidth)
   Point(doHeight)
   Point(doLeft)
   Point(doTop)
  }
  Add(Math,11434397,231,91)
  {
   OpType=35
   Op2=1
   link(onResult,8757309:doEvent1,[(268,97)(268,132)])
  }
  Add(ColorDialog,14755892,770,161)
  {
   link(onSelect,6281007:doEvent1,[])
  }
  Add(Memory,11829184,861,161)
  {
   Default=Integer(2072575)
   link(onData,7396834:doEvent4,[(905,167)(905,188)(324,188)(324,209)])
  }
  Add(Label,2033887,266,56)
  {
   Left=55
   Top=185
   Width=116
   Height=17
   Color=-16777215
   Font=[MS Sans Serif,8,0,-16777211,1]
   Caption="Dream Knob by Aziz"
  }
  Add(If_else,12871532,98,280)
  {
   Type=2
   Op2=Integer(0)
   link(onTrue,11568369:doData,[])
   link(onFalse,180397:doOperation,[(142,293)(142,328)])
  }
  Add(DoData,11568369,147,280)
  {
   link(onEventData,4194936:doWork2,[])
   link(Data,5260772:Var2,[])
  }
  Add(Memory,5800032,147,224)
  {
   Default=Integer(1)
  }
  Add(Math,180397,154,322)
  {
   OpType=1
   link(onResult,4194936:doWork3,[(205,328)])
   link(Op1,16215539:Var1,[(160,317)(407,317)(407,439)])
   link(Op2,5260772:Var3,[(167,264)])
  }
  Add(GetDataEx,5260772,147,259)
  {
   link(Data,5800032:Value,[])
  }
  Add(HubEx,4194936,201,280)
  {
   Angle=3
   link(onEvent,636877:doEvent2,[(205,239)(30,239)(30,195)])
  }
  Add(GetDataEx,16215539,728,434)
  {
   link(Data,11835883:Value,[])
  }
  Add(MathParse,5999133,329,329)
  {
   @Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=1
   MathStr="%1 /  3.3  "
   AngleMode=1
   link(onResult,14553885:doLeft,[(411,335)(411,83)])
   link(X1,14086760:Width,[(335,233)(41,233)])
  }
  Add(MathParse,8433487,371,567)
  {
   @Hint=#36:round( (%1 * ((%3+abs(%2))/300)),%4)|39:round( (%1 * ((%3+abs(%2))/300))+%2,%4)|0:|48:round(((%3 - (300-%1)) * ((%3+abs(%2))/300)),%4)|0:|36:(%5 - %1) * ((%2-%3) / (%5+abs(%4)))|40:((((%5 - %1)-%4) * ((%2-%3) / (%5-%4))))|36:(((%5-%4)-%1) * ((%2-%3) / (%5-%4)))|30:((%4-%1) * (%2 / %5))- (%3/2) |
   DataCount=4
   MathStr="\r\n\r\n"
   Point(doMathStr)
   link(onResult,11324101:doEvent1,[])
   link(X1,10866940:Var2,[])
   link(X2,13758913:Var2,[(384,545)(398,545)])
   link(X3,5511496:Var2,[(391,545)(440,545)])
   link(X4,11938062:Var1,[(398,545)])
  }
  Add(Memory,3734854,392,490)
  {
   @Hint=#9:Min value|
   Default=Real(0)
  }
  Add(Memory,3231430,434,490)
  {
   @Hint=#9:Max value|
   Default=Real(100)
  }
  Add(Memory,11876470,532,490)
  {
   @Hint=#15:Round precision|
   Default=Real(1)
  }
  Add(GetDataEx,13509061,252,231)
  {
   link(Data,11365138:Var2,[])
  }
  Add(Memory,16294626,168,70)
  {
   @Hint=#15:Round precision|
   Default=Integer(301)
  }
  Add(If_else,2283850,315,119)
  {
   Type=2
   link(onFalse,2122626:doWork1,[(481,132)])
   link(Op2,13509061:Var1,[(328,107)(249,107)(249,236)])
  }
  Add(Switch,12204523,399,406)
  {
   Point(onOn)
  }
  Add(Hub,328943,476,371)
  {
   link(onEvent1,10043336:doNext,[(502,377)(502,395)(436,395)(436,412)])
  }
  Add(Hub,8757309,280,126)
  {
   InCount=2
   link(onEvent1,2283850:doCompare,[(304,132)(304,125)])
   link(onEvent2,9730464:doValue,[(306,139)(306,163)(240,163)(240,188)])
  }
  Add(DoData,4783746,294,574)
  {
   Data=String(round( (%1 * ((%3+abs(%2-1))/300))+%2-1,%4))
   link(onEventData,7907162:doWork2,[])
  }
  Add(Hub,13758681,252,539)
  {
   link(onEvent1,9557567:doCompare,[(294,545)(294,524)])
   link(onEvent2,8433487:doCalc,[(318,552)(318,573)])
  }
  Add(If_else,9557567,308,518)
  {
   Type=1
   Op2=Integer(0)
   link(onTrue,4783746:doData,[(352,524)(352,552)(282,552)(282,580)])
   link(onFalse,7275907:doCompare,[(352,531)(352,573)(205,573)(205,615)])
   link(Op1,11463559:Var1,[(314,506)])
  }
  Add(GetDataEx,13758913,392,525)
  {
   link(Data,3734854:Value,[])
  }
  Add(DoData,7974367,294,609)
  {
   Data=String(round( (%1 * ((%3+%2)/300)),%4))
   link(onEventData,7907162:doWork3,[(347,615)])
  }
  Add(HubEx,7907162,343,574)
  {
   link(onEvent,8433487:doMathStr,[])
  }
  Add(HubEx,12991355,548,196)
  {
   link(onEvent,6666965:doOperation,[])
  }
  Add(Hub,4018710,623,112)
  {
   OutCount=3
   link(onEvent1,2122626:doWork3,[(649,118)(649,146)])
   link(onEvent2,12991355:doWork1,[(649,125)(649,162)(552,162)])
   link(onEvent3,12740700:doEvent2,[(649,132)(649,94)(163,94)(163,55)])
  }
  Add(HubEx,2122626,477,140)
  {
   Angle=1
   link(onEvent,12465343:doClear,[(481,342)])
  }
  Add(If_else,7275907,217,609)
  {
   Op2=Integer(0)
   link(onTrue,7974367:doData,[])
   link(onFalse,5273580:doData,[(282,622)(282,650)])
  }
  Add(DoData,5273580,294,644)
  {
   Data=String(round( (%1 * ((%3-%2)/300))+%2,%4))
   link(onEventData,7907162:doWork1,[(336,650)(336,571)(347,571)])
  }
  Add(Hub,2911665,399,273)
  {
   OutCount=3
   link(onEvent1,1821441:doEvent1,[(437,279)(437,594)])
   link(onEvent2,4182267:doData,[])
   link(onEvent3,7396834:doEvent2,[(425,293)(425,244)(324,244)(324,195)])
  }
  Add(Memory,295307,483,476)
  {
   @Hint=#22:Input, preset, default|
   Default=Real(0)
   link(onData,1821441:doEvent2,[(527,482)(527,548)(450,548)(450,601)])
  }
  Add(DoData,4182267,448,280)
  {
  }
  Add(MathParse,15795284,511,588)
  {
   @Hint=#36:round( (%1 * ((%3+abs(%2))/300)),%4)|39:round( (%1 * ((%3+abs(%2))/300))+%2,%4)|0:|48:round(((%3 - (300-%1)) * ((%3+abs(%2))/300)),%4)|0:|36:(%5 - %1) * ((%2-%3) / (%5+abs(%4)))|40:((((%5 - %1)-%4) * ((%2-%3) / (%5-%4))))|36:(((%5-%4)-%1) * ((%2-%3) / (%5-%4)))|30:((%4-%1) * (%2 / %5))- (%3/2) |
   DataCount=4
   MathStr="\r\n"
   Point(doMathStr)
   link(onResult,8757309:doEvent2,[(548,594)(548,366)(268,366)(268,139)])
   link(X1,12669674:Var2,[(517,555)(489,555)])
   link(X2,13758913:Var3,[(524,530)])
   link(X3,5511496:Var3,[(531,537)])
   link(X4,11938062:Var2,[(538,568)(531,568)])
  }
  Add(GetDataEx,5511496,434,532)
  {
   link(Data,3231430:Value,[])
  }
  Add(GetDataEx,11938062,525,540)
  {
   link(Data,11876470:Value,[(531,531)(538,531)])
  }
  Add(Hub,1821441,462,588)
  {
   InCount=2
   OutCount=3
   link(onEvent1,11829659:doCompare,[(488,594)(488,632)(415,632)(415,671)])
   link(onEvent2,15795284:doCalc,[(494,601)(494,594)])
  }
  Add(DoData,16180259,420,616)
  {
   Data=String(round( (%1 / ((%3+%2)/300)),%4))
   link(onEventData,1612843:doWork2,[])
  }
  Add(If_else,7116149,476,665)
  {
   Type=1
   Op2=Integer(0)
   link(onTrue,15671250:doData,[(530,671)(530,713)])
   link(onFalse,5726707:doData,[(530,678)(530,748)])
   link(Op1,12669674:Var1,[(482,530)])
  }
  Add(GetDataEx,12669674,483,525)
  {
   link(Data,295307:Value,[])
  }
  Add(If_else,11829659,427,665)
  {
   Type=1
   Op2=Integer(0)
   link(onTrue,7116149:doCompare,[])
   link(onFalse,7902103:doData,[(506,678)(506,671)])
   link(Op1,11463559:Var2,[(433,587)(342,587)])
  }
  Add(GetDataEx,11463559,336,501)
  {
   Angle=1
   link(Data,13758913:Var1,[(354,506)(354,530)])
  }
  Add(DoData,7902103,553,665)
  {
   Data=String(round( (%1 / ((%3+abs(%2))/300))-(%2)*2,%4))
   link(onEventData,15321215:doWork3,[(597,671)])
  }
  Add(HubEx,1612843,477,616)
  {
   Angle=3
   link(onEvent,15795284:doMathStr,[(481,601)])
  }
  Add(DoData,15671250,553,707)
  {
   Data=String(round( (%1 / ((%3+abs(%2))/300))-(%2-1)*2,%4))
   link(onEventData,472989:doWork3,[(589,713)])
  }
  Add(HubEx,15321215,593,658)
  {
   Angle=3
   link(onEvent,1612843:doWork1,[(597,622)])
  }
  Add(DoData,5726707,553,742)
  {
   Data=String(round( (%1 / ((%3+abs(%2))/300))-(%2)*2,%4))
   link(onEventData,472989:doWork1,[(597,748)(597,699)])
  }
  Add(HubEx,472989,585,693)
  {
   Angle=3
   link(onEvent,15321215:doWork2,[(589,664)])
  }
  Add(Hub,14492645,448,168)
  {
   InCount=2
   OutCount=5
   link(onEvent1,2122626:doWork2,[(470,174)(470,146)])
   link(onEvent2,13135093:doValue,[(490,181)(490,244)])
   link(onEvent3,3179870:doOperation,[(483,188)(483,153)])
   link(onEvent4,10899728:doOperation,[(474,195)(474,157)(443,157)(443,118)])
   link(onEvent5,16154425:doEvent1,[(474,202)(474,272)(282,272)(282,342)])
  }
  Add(Math,10899728,455,112)
  {
   OpType=3
   Op2=1.5
   Default=30
   link(onResult,14553885:doHeight,[(499,118)(499,97)(450,97)(450,76)])
  }
  Add(MathParse,14619068,329,371)
  {
   @Hint=#38:Math.sin((Math.PI * angl / 180) / 2), |30:x = 150 + R * cos ((pi *2)* t)|31:y = 150 + R * sin (-(pi *2)* t)|27:%3 + %2 * cos ((pi *2)* %1)|
   DataCount=1
   MathStr="%1 / 2.5 "
   AngleMode=1
   link(onResult,14553885:doTop,[(411,377)(411,90)])
   link(X1,12550175:Var2,[(335,254)(48,254)])
  }
  Add(Hub,16154425,294,336)
  {
   link(onEvent1,5999133:doCalc,[(318,342)(318,335)])
   link(onEvent2,14619068:doCalc,[(318,349)(318,377)])
  }
  Add(Math,3179870,504,147)
  {
   OpType=2
   Op2=1.1
   Default=30
   link(onResult,14553885:doWidth,[(548,153)(548,111)(450,111)(450,69)])
  }
  Add(DoData,12873480,847,504)
  {
  }
  Add(GetDataEx,12550175,42,147)
  {
   link(Data,14086760:Height,[])
  }
  Add(Hub,13767139,91,28)
  {
   link(onEvent1,3826012:doEvent1,[(235,34)(235,216)])
   link(onEvent2,2911665:doEvent1,[(252,41)(252,279)])
  }
  Add(TrackBar,8882717,126,42)
  {
   Left=85
   Top=35
   Visible=1
   Max=300
   Min=-300
   Position=150
  }
  Add(Hub,12740700,175,42)
  {
   InCount=2
   link(onEvent2,2033887:doText,[(227,55)(227,62)])
  }
  Add(Math,4070639,392,189)
  {
   OpType=3
   Op2=2.8
   Default=30
   link(onResult,14492645:doEvent1,[(436,195)(436,174)])
   link(Op1,14346336:Var2,[])
  }
  Add(Math,6654163,392,231)
  {
   OpType=3
   Op2=2
   Default=30
   link(onResult,7855591:doValue,[(485,237)(485,244)])
   link(Op1,14346336:Var1,[(398,213)(389,213)(389,180)])
  }
  Add(Hub,3826012,364,210)
  {
   link(onEvent1,4070639:doOperation,[(385,216)(385,195)])
   link(onEvent2,6654163:doOperation,[(385,223)(385,237)])
  }
  Add(GetDataEx,14346336,392,175)
  {
   link(Data,12550175:Var3,[(398,152)])
  }
  Add(Memory,6913377,630,49)
  {
   @Hint=#7:Толщина|
   Default=Integer(3)
   link(onData,4018710:doEvent1,[(674,55)(674,87)(611,87)(611,118)])
  }
  Add(Hub,11324101,420,567)
  {
   link(onEvent1,14553885:doText,[(448,573)(448,55)])
   link(onEvent2,11526556:onResult,[(822,580)(822,27)])
  }
  Add(If_else,11433014,126,455)
  {
   Type=3
   link(onTrue,3872806:doCompare,[])
   link(onFalse,9727000:doMessage,[(614,468)(614,608)])
   link(Op2,5511496:Var1,[(139,443)(288,443)(288,537)])
  }
  Add(Message,9727000,1071,602)
  {
   Message="Input value is out of MAX range!"
  }
  Add(If_else,3872806,182,455)
  {
   Type=1
   link(onTrue,1175819:doMessage,[(642,461)(642,650)])
   link(onFalse,295307:doValue,[(348,468)(348,482)])
   link(Op2,11463559:Var3,[(195,443)(342,443)])
  }
  Add(Message,1175819,1071,644)
  {
   Message="Input value is out of Min range!"
  }
  Add(Hub,6131807,581,49)
  {
   InCount=2
  }
  Add(Hub,6281007,833,161)
  {
   InCount=2
   OutCount=3
   link(onEvent1,11829184:doValue,[])
   link(onEvent2,15771391:doEvent1,[(859,174)(859,139)(422,139)(422,104)])
   link(onEvent3,11642599:doWork1,[(859,181)(859,218)(340,218)])
  }
  Add(Hub,15771391,434,98)
  {
   link(onEvent1,14553885:doSegColor,[(455,104)(455,62)])
  }
  Add(HubEx,11642599,336,252)
  {
   link(onEvent,12465343:doRefresh,[(447,258)(447,335)])
  }
  Add(Img_Line,8089033,518,434)
  {
   Point2=10
   Point2AsOffset=0
   Size=5
   Point(Point1)
   Point(Point2)
   Point(Size)
   Point(Color)
   Point(Transform)
   link(Bitmap,12465343:Bitmap,[(524,400)(622,400)])
   link(Point1,6801853:Point,[(531,422)(552,422)(552,464)(573,464)])
   link(Color,11829184:Value,[(552,314)(867,314)])
   link(Transform,7434545:Transform,[(559,422)(597,422)(597,555)(636,555)])
  }
  Add(PointXY,6801853,567,420)
  {
   link(X,16095580:Result,[])
   link(Y,14307840:Result,[(580,390)(524,390)])
  }
  Add(Img_UseRotate,7434545,630,511)
  {
   Angle=90
   link(Angle,16036997:Position,[(643,300)(538,300)])
  }
  Add(GetDataEx,10866940,371,473)
  {
   link(Data,13509061:Var3,[(377,236)])
  }
  Add(PointXY,9192580,721,560)
  {
  }
  Add(MathParse,13810258,700,518)
  {
   @Hint=#36:round( (%1 * ((%3+abs(%2))/300)),%4)|39:round( (%1 * ((%3+abs(%2))/300))+%2,%4)|0:|48:round(((%3 - (300-%1)) * ((%3+abs(%2))/300)),%4)|0:|36:(%5 - %1) * ((%2-%3) / (%5+abs(%4)))|40:((((%5 - %1)-%4) * ((%2-%3) / (%5-%4))))|36:(((%5-%4)-%1) * ((%2-%3) / (%5-%4)))|30:((%4-%1) * (%2 / %5))- (%3/2) |
   DataCount=4
   MathStr="0 - %1\r\n"
   Point(doMathStr)
   link(X1,10866940:Var3,[(706,478)])
  }
  Add(Hub,7556766,490,413)
  {
   link(onEvent1,13810258:doCalc,[(602,419)(602,524)])
   link(onEvent2,8089033:doDraw,[(511,426)(511,440)])
  }
END_SDK
Add(MainForm,5818658,35,112)
{
 @Hint=#8:(c) Aziz|
 Width=481
 Height=415
 Caption="Dream Knob 1.0"
 Position=1
 Point(onMouseWheel)
 Point(Width)
 Point(Height)
 link(onCreate,6678596:doInit,[(173,132)(173,370)])
}
Add(Label,3904486,343,329)
{
 Left=355
 Top=145
}
Add(Edit,2269443,98,266)
{
 Left=345
 Top=50
 Text="108"
 DataType=4
 link(onChange,6678596:doValue,[(205,272)(205,335)])
}
Add(BitBtn,7930152,98,406)
{
 Left=345
 Top=185
 Caption="Reset"
 link(onClick,8767528:doEvent1,[])
}
Add(Timer,7919437,287,147)
{
 Interval=500
 Enable=1
 link(onTimer,13129573:doEvent1,[])
}
Add(BitBtn,1632998,213,131)
{
 Left=335
 Top=220
 Width=85
 Height=50
 Caption="Demo"
 link(onClick,7919437:doTimer,[(266,137)(266,153)])
}
Add(RGB,6592141,413,203)
{
 link(onRGB,6678596:doColor,[(457,209)(457,335)(268,335)(268,384)])
 link(R,16595329:Random,[(419,191)(363,191)])
 link(G,11314125:Random,[(426,191)(405,191)])
 link(B,7270620:Random,[(433,191)(454,191)])
}
Add(Random,16595329,357,147)
{
 Max=255
 link(onRandom,11314125:doRandom,[])
}
Add(Random,11314125,399,147)
{
 Max=255
 link(onRandom,7270620:doRandom,[])
}
Add(Random,7270620,448,147)
{
 Max=255
 link(onRandom,6592141:doRGB,[(492,153)(492,181)(401,181)(401,209)])
}
Add(Random,3465738,357,203)
{
 Min=5
 Max=10
 link(onRandom,6678596:doThickness,[(401,209)(401,332)(268,332)(268,377)])
}
Add(Hub,13129573,329,147)
{
 OutCount=3
 link(onEvent1,16595329:doRandom,[])
 link(onEvent2,8968820:doNext,[(355,160)(355,188)(275,188)(275,216)])
 link(onEvent3,9318257:doRandom,[(350,167)(350,258)])
}
Add(Random,9318257,357,252)
{
 link(onRandom,2269443:doText,[(401,258)(401,265)(86,265)(86,272)])
}
Add(CounterEx,8968820,287,210)
{
 Max=4
 Point(onThroughMax)
 link(onThroughMax,3465738:doRandom,[(338,223)(338,209)])
}
Add(Hub,8767528,182,406)
{
 link(onEvent1,6678596:doClear,[(238,412)(238,342)])
 link(onEvent2,7919437:doStop,[(242,419)(242,160)])
}


Редактировалось 9 раз(а), последний 2023-04-07 10:39:29
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)