Add(MainForm,11427165,399,63)
{
Width=652
Height=491
}
Add(ChildPanel,3206379,581,63)
{
}
BEGIN_SDK
Add(EditMulti,10106438,28,21)
{
WorkCount=1
Width=657
Height=508
link(doWork1,8531400:doLoad,[(49,27)(49,76)])
}
Add(Panel,9845587,56,105)
{
Left=75
Top=5
Width=569
Height=449
Color=16711680
BorderWidth=0
BevelInner=0
BevelWidth=0
}
Add(Hub,13203121,238,70)
{
OutCount=3
link(onEvent1,7614620:doLoad,[])
link(onEvent2,3567399:doData,[])
link(onEvent3,4697609:doCalc,[(265,90)(265,168)(187,168)(187,307)])
}
Add(Image,7614620,448,70)
{
Width=570
Height=450
Color=12639424
Point(onMouseDown)
Point(onMouseMove)
Point(onMouseWheel)
Point(doSetFocus)
Point(Width)
Point(Height)
Point(Left)
Point(Top)
Point(Handle)
Point(doWidth)
Point(doHeight)
Point(doLeft)
Point(doTop)
Point(MouseX)
Point(MouseY)
link(onMouseDown,7961584:doMove,[])
link(onMouseMove,7614620:doSetFocus,[(521,90)(521,61)(436,61)(436,90)])
link(onMouseWheel,6410142:doCalc,[(535,97)(535,452)(306,452)(306,370)])
}
Add(MoveWindow,7961584,574,77)
{
link(Handle,7614620:Handle,[(580,65)(547,65)(547,132)(489,132)])
}
Add(Img_Loader,8531400,189,70)
{
Point(ImageWidth)
Point(ImageHeight)
link(onLoad,13203121:doEvent1,[])
}
Add(DoData,3567399,273,77)
{
@Hint=#44:Устанавливаем картинку в исходное положение.|
Data=String(560;440;0;0)
link(onEventData,13334793:doSplit,[(324,83)(324,41)])
AddHint(-122,-46,157,26,@Hint)
}
Add(MT_MultiData,1016511,350,91)
{
Count=4
link(onData1,15003113:doWork2,[])
link(onData2,4348091:doWork2,[])
link(onData3,13090885:doWork2,[])
link(onData4,14056429:doWork2,[])
}
Add(HubEx,13090885,399,105)
{
link(onEvent,7614620:doLeft,[])
}
Add(HubEx,14056429,392,112)
{
link(onEvent,7614620:doTop,[])
}
Add(MultiStrData,13334793,350,35)
{
Count=4
link(onPart1,15003113:doWork1,[(417,41)])
link(onPart2,4348091:doWork1,[(410,48)])
link(onPart3,13090885:doWork1,[(403,55)])
link(onPart4,14056429:doWork1,[(396,62)])
}
Add(HubEx,4348091,406,98)
{
link(onEvent,7614620:doHeight,[])
}
Add(HubEx,15003113,413,91)
{
link(onEvent,7614620:doWidth,[])
}
Add(Math,16498202,413,301)
{
OpType=2
ResultType=0
link(onResult,7699264:doCalc,[])
link(Op2,11734163:Var3,[(426,258)])
}
Add(Math,1268462,420,350)
{
OpType=2
ResultType=0
link(onResult,14759686:doCalc,[])
link(Op2,1399574:Var3,[(433,249)])
}
Add(Hub,4830515,371,301)
{
OutCount=3
link(onEvent1,16498202:doOperation,[])
link(onEvent2,1268462:doOperation,[(403,314)(403,356)])
link(onEvent3,2639226:doAdd,[(393,321)(393,419)])
}
Add(MathParse,7699264,455,301)
{
DataCount=3
MathStr="%3-((%1-%2)/2)"
link(X2,141144:Var2,[(468,271)(461,271)])
link(X3,7614620:Left,[])
}
Add(MathParse,14759686,483,350)
{
DataCount=3
MathStr="%3-((%1-%2)/2)"
link(X2,5536969:Var3,[(496,184)])
link(X3,7614620:Top,[(503,165)(482,165)])
}
Add(MT_AddData,2639226,413,413)
{
Count=4
link(onAdd,1016511:doSeparateMT,[(524,419)(524,154)(338,154)(338,97)])
link(Data1,16498202:Result,[])
link(Data2,1268462:Result,[])
link(Data3,7699264:Result,[(433,394)(461,394)])
link(Data4,14759686:Result,[(440,401)(489,401)])
}
Add(MathParse,6410142,322,364)
{
@Hint=#47:Используем скролл для изменения масштаба +-0.01|
MathStr="((%1>0)*(%2+0.01))+
((%1<0)*(%2-0.01))
"
link(onResult,5195672:doWork3,[(366,370)(366,347)(277,347)])
link(X2,13261770:Value,[])
AddHint(-283,84,200,26,@Hint)
}
Add(Memory,13261770,329,301)
{
link(onData,4830515:doEvent1,[])
}
Add(GetDataEx,1399574,231,244)
{
Angle=3
link(Data,8531400:ImageHeight,[(209,249)])
}
Add(If_else,6420539,287,301)
{
@Hint=#32:Ограничиваем уменьшение масштаба|
Type=4
link(onTrue,13261770:doValue,[])
link(Op2,4697609:Result,[(300,289)(262,289)(262,345)(230,345)])
AddHint(-205,113,158,26,@Hint)
}
Add(MathParse,4697609,224,301)
{
@Hint=#56:Создаем исходный коэффициент вписывающий картинку в окно|
DataCount=4
MathStr="min((%1/%2),(%3/%4))"
link(onResult,5195672:doWork2,[])
link(X1,5536969:Var1,[(230,184)])
link(X2,1399574:Var2,[])
link(X3,141144:Var1,[(244,201)])
link(X4,11734163:Var2,[])
AddHint(-172,79,187,26,@Hint)
}
Add(GetDataEx,11734163,245,253)
{
Angle=3
link(Data,8531400:ImageWidth,[(202,258)])
}
Add(GetDataEx,141144,455,196)
{
link(Data,7614620:Width,[])
}
Add(HubEx,5195672,273,301)
{
link(onEvent,6420539:doCompare,[])
}
Add(GetDataEx,5536969,462,179)
{
link(Data,7614620:Height,[])
}
END_SDK
Add(Button,7450850,448,63)
{
Left=15
Top=15
link(onClick,15336679:doExecute,[])
}
Add(ODialog,15336679,511,63)
{
link(onExecute,3206379:doWork1,[])
}
Этот топик читают: Гость
Ответов: 1535
Рейтинг: 176
|
|||
Вообщем, в прилагаемом шаблоне, нужно увеличитьуменьшить всю картинку в точке расположения курсора над этой самой картинкой, при помощи скролла (колесо мыши). Т.е. курсор мыши указывает центр масштабирования картинки. Голову уже сломал.
|
|||
карма: 1 |
| ||
Голосовали: | sintet |
Ответов: 8926
Рейтинг: 823
|
|||
ser_davkin, вот:
code_30134.txt Масштабирование по центру картинки. Для мыши надо протянуть связи и заменить формулу с "%2/2-(%2/2-%3)*%1" на "%2-(%2-%3)*%1" (убрать деление на два) [flood]А тех пользователей, которые применяют данные/поток без необходимости, надо тупым серпом наказывать [/flood] |
|||
карма: 19 |
| ||
файлы: 1 | code_30134.txt [4.7KB] [660] | ||
Голосовали: | ser_davkin, sintet |
Ответов: 1535
Рейтинг: 176
|
|||
Леонид, ага, решение с мышью понятна. Было бы, конечно здорово, если бы точка масштабирования под мышью была бы неподвижна (как вкопанная). Но всё равно, спасибо за помощь.
Леонид писал(а): применяют данные/поток без необходимости |
|||
карма: 1 |
|
Ответов: 8926
Рейтинг: 823
|
|||
ser_davkin писал(а): Объясни подробнееser_davkin писал(а): точка масштабирования под мышью была бы неподвижна (как вкопанная). Проще, удобнее для пользователя и логичнее эту точку в центр передвинуть и масштабировать относительно центра. |
|||
карма: 19 |
|
Ответов: 1535
Рейтинг: 176
|
|||
Леонид, я тебе в ЛС уже говорил, что картинка состоит из ячеек. Каждая ячейка (256Х256)(уже не 100х100) картинки редактируется отдельно. Чтобы в огромном поле ячеек найти нужную, я отдаляю всё поле (картинку) скроллом, навожу на нужную ячейку курсор мыши, приближаю её, выделяю и редактирую. Вот для чего нужно масштабирование по курсору мыши. Поэтому железный гвоздь здесь не помешал бы.
|
|||
карма: 1 |
|
Ответов: 8926
Рейтинг: 823
|
|||
ser_davkin, свят, свят, такие размерные картинки на HiAsm-е редактировать, долго, надо в IC делать со вставками на ассемблере (или поступиться принципом и Фотошоп открыть )
|
|||
карма: 19 |
|
Ответов: 1535
Рейтинг: 176
|
|||
Леонид, да, вроде на процессоре не видно, что он как-то на всё это реагирует. Запас ещё ого-го.
------------ Дoбавленo в 09.11: Леонид, вот, твоя же схема. Я всего-то там окно просмотра сдвинул к началу координат родительской формы, и масштабирование по курсору стало значительно лучше. Как объяснить такое чудо?
|
|||
карма: 1 |
|
Ответов: 8926
Рейтинг: 823
|
|||
ser_davkin, разумного объяснения не нашёл даже выведя всякие координаты для посмотреть
Заменил формулу масштаба со сложения на умножение. code_30147.txt |
|||
карма: 19 |
| ||
файлы: 1 | code_30147.txt [5.7KB] [655] |
Ответов: 1535
Рейтинг: 176
|
|||
Леонид писал(а): разумного объяснения не нашёлА, правильный зум мне очень нужен. |
|||
карма: 1 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
ser_davkin писал(а): уже ожидаю ответ от nescoА я тут вообще причем Я в ваши дела не лезу, а меня уже всуе куда попало |
|||
карма: 22 |
|
Ответов: 1535
Рейтинг: 176
|
|||
nesco, это подтекст, мол, помоги разобраться. Другого активного разработчика я пока не знаю.(у меня ответов:1001 - как 1000 и одна ночь)
|
|||
карма: 1 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
ser_davkin писал(а): активного разработчика я пока не знаюА разработчик-то тут причем Есть какие-то претензии к компонентам |
|||
карма: 22 |
|
Ответов: 1535
Рейтинг: 176
|
|||
nesco писал(а): А разработчик-то тут причем nesco писал(а): Есть какие-то претензии к компонентам |
|||
карма: 1 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
ser_davkin писал(а): почему при нулевой глобальной координате формы зум картинки работает, а стоит сдвинуть форму, то всё, пипецЗум работает, но вот картинка пытается принять нулевые координаты ------------ Дoбавленo в 13.32: Так что должно быть -- обычное зуммирование при скроллинге мыши, независимо от положения мыши на экране или привязано к координатам мыши |
|||
карма: 22 |
|
Ответов: 1535
Рейтинг: 176
|
|||
nesco писал(а): обычное зуммирование при скроллинге мыши, независимо от положения мыши на экранеnesco писал(а): или привязано к координатам мыши |
|||
карма: 1 |
|