Вот кусок из твоего кода: code_11103.txt
В данном случае, что бы отрисовать один полигон из этих координат нам нужно найти:
координату 1 с самым большим 2
координату 1 с самым маленьким 2
координату 2 с самым большим 1
координату 2 с самым маленьким 1
(или я тоже к вечеру поглупел). Т.е. нам нужно найти КРАЙНИЕ точки.
------------ Дoбавленo:
В любых других случаях (когда у нас не квадрат, а какая нибудь произвольная фигура) нужно из последовательности точек брать 4 строки 9с координатами) и по ним отрисоввывать.
1
2
3
4
5
6
7
Вот так подавать на мультик:
Сначала: 1, 2, 3, 4. рисуем их.
Затем 2,3,4,5 - опять рисуем.
3,4,5,6 - рисуем. и всё это в компактном мультике.
Пример использования мультиэлемента в рисовании:
Add(Timer,3556552,287,430)
{
Interval=10
link(onTimer,9244294:doRefresh,[])
}
Add(PaintBox,9244294,336,430)
{
Left=135
Top=55
Width=210
Height=210
Color=12639424
ClearBeforeDraw=0
link(onBeforeDraw,9184855:doFor,[])
}
Add(Button,331381,287,479)
{
Left=200
Top=30
Width=65
Font=[Arial,8,0,0,1]
Caption="Add"
link(onClick,14227323:##add,[])
}
Add(MultiElementEx,14227323,336,479)
{
Mode=1
link(Handle,9244294:Bitmap,[])
}
BEGIN_SDK
Add(EditMultiEx,10129213,3,3)
{
WorkCount=#5:##add|8:##select|
VarCount=#7:##count|
DataCount=#6:Handle|
Width=440
Height=319
Point(##add)
Point(##select)
Point(##count)
link(##add,2149117:doRandom,[(19,9)(19,55)])
link(##select,10271306:doDraw,[(14,16)(14,251)])
}
Add(Img_Ellipse,10271306,91,245)
{
Point2AsOffset=0
Point(Point1)
Point(Point2)
link(onDraw,2658985:doOperation,[])
link(Bitmap,10129213:Handle,[(97,16)(9,16)])
link(Point1,4655807:Point,[])
link(Point2,5914282:Point,[(111,233)(139,233)])
}
Add(PointXY,5914282,133,189)
{
X=10
Y=10
}
Add(Memory,7646524,126,49)
{
link(onData,2559567:doWork1,[(169,55)(169,167)])
}
Add(Memory,10908804,189,49)
{
link(onData,2196150:doWork1,[(268,55)(268,167)])
}
Add(PointXY,4655807,98,140)
{
link(X,6591336:Var1,[(104,114)])
link(Y,13022105:Var1,[(111,121)])
}
Add(MultiElement,2559567,210,161)
{
}
BEGIN_SDK
Add(EditMulti,2784491,3,3)
{
WorkCount=1
VarCount=1
Height=102
link(doWork1,13198225:doCompare,[(26,9)(26,41)])
link(Var1,115467:Value,[(9,86)(272,86)])
}
Add(If_else,13198225,49,35)
{
Type=1
Op2=Integer(1)
link(onTrue,1277010:doWork2,[])
link(onFalse,4875620:doCompare,[])
}
Add(Switch,8043746,203,35)
{
DataOn=Integer(-2)
DataOff=Integer(2)
link(onSwitch,115467:doValue,[])
}
Add(If_else,4875620,112,42)
{
Type=2
Op2=Integer(200)
link(onTrue,1277010:doWork3,[(179,48)])
}
Add(HubEx,1277010,175,28)
{
link(onEvent,8043746:doSwitch,[])
}
Add(Memory,115467,266,35)
{
Default=Integer(1)
}
END_SDK
Add(Hub,3093429,252,245)
{
link(onEvent1,11790344:doOperation,[])
link(onEvent2,2811565:doWork3,[(294,258)(294,283)(81,283)])
}
Add(Math,2658985,203,245)
{
link(onResult,3093429:doEvent1,[])
link(Op1,6591336:Var3,[(209,114)])
link(Op2,2559567:Var1,[])
}
Add(GetDataEx,6591336,119,105)
{
link(Data,7646524:Value,[])
}
Add(Math,11790344,308,245)
{
link(onResult,10908804:doValue,[(394,251)(394,26)(174,26)(174,55)])
link(Op1,13022105:Var3,[(314,121)])
link(Op2,2196150:Var1,[])
}
Add(GetDataEx,13022105,182,112)
{
link(Data,10908804:Value,[])
}
Add(MultiElement,2196150,315,161)
{
}
BEGIN_SDK
Add(EditMulti,2784491,3,3)
{
WorkCount=1
VarCount=1
Height=102
link(doWork1,13198225:doCompare,[(26,9)(26,41)])
link(Var1,115467:Value,[(9,86)(272,86)])
}
Add(If_else,13198225,49,35)
{
Type=1
Op2=Integer(1)
link(onTrue,1277010:doWork2,[])
link(onFalse,4875620:doCompare,[])
}
Add(Switch,8043746,203,35)
{
DataOn=Integer(-1)
DataOff=Integer(1)
link(onSwitch,115467:doValue,[])
}
Add(If_else,4875620,112,42)
{
Type=2
Op2=Integer(200)
link(onTrue,1277010:doWork3,[(179,48)])
}
Add(HubEx,1277010,175,28)
{
link(onEvent,8043746:doSwitch,[])
}
Add(Memory,115467,266,35)
{
Default=Integer(1)
}
END_SDK
Add(Random,2149117,35,49)
{
Min=1
link(onRandom,2811565:doWork2,[])
}
Add(HubEx,2811565,77,42)
{
link(onEvent,7646524:doValue,[])
}
END_SDK
Add(For,9184855,392,430)
{
IncludeEnd=1
link(onEvent,14227323:##select,[(431,436)(431,527)(326,527)(326,492)])
link(End,14227323:##count,[(405,420)(380,420)(380,521)(342,521)])
}