Вверх ↑
Ответов: 1292
Рейтинг: 28
#1: 2021-02-20 21:19:05 ЛС | профиль | цитата
Rysik писал(а):
Rysik, ну как всегда неясно излагаете хотелки


да, это да))))

Леонид писал(а):
Сделайте трёхмерный массив double (высота, ширина и три цвета) и работайте с ним. при выводе на экран округляйте в integer. Например картинка 256х192 запишется в массив Pic[0..255, 0..191. 0..2] As double
В начале в двух координатах значения будут будут совпадать с номерами пикселей, ну а после расчёта будут с трчностью до 14 десятичных знаков. С цветом надо следить, чтобы не вышел за пределы 0-:-255.


ничего не понял)))


Add(MainForm,2953706,21,105)
{
Width=450
Height=477
}
Add(PaintBox,10240805,231,161)
{
Width=50
Height=50
Color=0
ClearBeforeDraw=0
Point(onPaint)
link(onBeforeDraw,5703441:doDraw,[])
}
Add(Timer,12776,182,161)
{
Interval=0
link(onTimer,10240805:doRefresh,[])
}
Add(Img_Point,5703441,434,161)
{
Color=65280
Size=3
Point(X)
Point(Y)
Point(Transform)
link(onDraw,15989258:doDraw,[])
link(Bitmap,7493472:getVar,[])
link(X,9559049:Count,[(447,117)(377,117)])
link(Y,14158608:Count,[(454,117)(482,117)])
}
Add(LineBreakEx,7493472,434,133)
{
Caption="bmp"
Type=2
}
Add(LineBreakEx,2355599,231,203)
{
Caption="bmp"
Type=3
link(_Data,10240805:Bitmap,[])
}
Add(Timer,11092191,315,42)
{
Interval=400
link(onTimer,9559049:doNext,[])
}
Add(CounterEx,9559049,371,42)
{
Max=50
link(onNext,11897398:doTimer,[])
}
Add(CounterEx,14158608,476,42)
{
Max=50
link(onNext,537872:doTimer,[])
}
Add(Timer,11897398,420,42)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,14158608:doNext,[])
}
Add(Img_Point,15989258,658,161)
{
Color=65280
Size=3
Point(X)
Point(Y)
Point(Transform)
link(Bitmap,4013458:getVar,[])
link(X,16222458:Count,[(671,117)(601,117)])
link(Y,10010829:Count,[(678,117)(706,117)])
}
Add(LineBreakEx,4013458,658,133)
{
Caption="bmp"
Type=2
}
Add(CounterEx,16222458,595,42)
{
Max=50
Direct=1
link(onNext,6742032:doTimer,[])
}
Add(CounterEx,10010829,700,42)
{
Max=50
Direct=1
}
Add(Timer,6742032,644,42)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,10010829:doNext,[])
}
Add(Timer,537872,539,42)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,16222458:doNext,[])
}
Add(PaintBox,1132952,203,434)
{
Left=65
Width=50
Height=50
Color=0
ClearBeforeDraw=0
Point(onPaint)
link(onBeforeDraw,14860219:doEvent1,[])
}
Add(Timer,3856851,154,434)
{
Interval=0
link(onTimer,1132952:doRefresh,[])
}
Add(Img_Point,510685,406,434)
{
X=20
Y=20
Color=65280
Size=3
Point(X)
Point(Y)
Point(Transform)
link(onDraw,16363929:doDraw,[])
link(Bitmap,9154436:getVar,[])
}
Add(LineBreakEx,9154436,406,406)
{
Caption="bmp2"
Type=2
}
Add(LineBreakEx,13034508,203,476)
{
Caption="bmp2"
Type=3
link(_Data,1132952:Bitmap,[])
}
Add(Img_Point,16363929,630,434)
{
X=35
Y=35
Color=65280
Size=3
Point(X)
Point(Y)
Point(Transform)
link(Bitmap,15770649:getVar,[])
}
Add(LineBreakEx,15770649,630,406)
{
Caption="bmp2"
Type=2
}
Add(Img_UseOffset,4380928,315,336)
{
link(X,13037737:Var2,[])
link(Y,13037737:Var3,[(335,314)])
}
Add(Img_SetTransform,12293127,294,434)
{
link(onSetTransform,510685:doDraw,[])
link(Bitmap,10256678:getVar,[])
link(Transform,4380928:Transform,[])
}
Add(Hub,14860219,252,434)
{
link(onEvent1,12293127:doSetTransform,[])
link(onEvent2,12293127:doResetTransform,[])
}
Add(LineBreakEx,10256678,294,406)
{
Caption="bmp2"
Type=2
}
Add(Math,3693233,308,259)
{
OpType=32
}
Add(CounterEx,5162668,245,259)
{
Direct=1
link(onNext,3693233:doOperation,[])
}
Add(Timer,15323109,189,259)
{
Interval=0
link(onTimer,5162668:doNext,[])
}
Add(GetDataEx,13037737,322,309)
{
Angle=3
link(Data,3693233:Result,[(314,314)])
}

вот пример, тут при маленькой частоте передвижения точки, она двигается ступеньками, а надо что бы двигалась очень плавно как на втором примере, но на втором примере, двигается всё полностью, а не каждая точка отдельно
карма: 2

0