function Make6Ugol(ln,pv,
hln, wln, hpn, wpn,
hlv, wlv, hpv, wpv,radius)
{
Contour = NewContour();
// Intermediate ellipse quantities.
p1 = NewPoint(ln.x,ln.y+hln)
p2 = NewPoint(ln.x+wln,ln.y)
p3 = NewPoint(pv.x-wpn,ln.y)
l1 = Contour.AddLine(p1.x,p1.y,p2.x,p2.y);
l2 = Contour.AddLine(p2.x,p2.y,p3.x,p3.y);
p4 = NewPoint(pv.x,ln.y+hpn)
l3 = Contour.AddLine(p3.x,p3.y,p4.x,p4.y);
p5 = NewPoint(pv.x,pv.y-hpv)
l4 =Contour.AddLine(p4.x,p4.y,p5.x,p5.y);
p6 = NewPoint(pv.x-wpv,pv.y)
l5 =Contour.AddLine(p5.x,p5.y,p6.x,p6.y);
p7 = NewPoint(ln.x+wlv,pv.y)
l6 =Contour.AddLine(p6.x,p6.y,p7.x,p7.y);
p8 = NewPoint(ln.x,pv.y-hlv)
l7 =Contour.AddLine(p7.x,p7.y,p8.x,p8.y);
//p9 = NewPoint(ln.x,ln.y+hln)
l8 =Contour.AddLine(p8.x,p8.y,p1.x,p1.y);
if (radius>0)
{
Contour.RoundingEx(l1, l2, p2.x+1, p2.y+1, radius)
Contour.RoundingEx(l2, l3, p3.x-1, p3.y+1, radius)
Contour.RoundingEx(l3, l4, p4.x-1, p4.y+1, radius)
Contour.RoundingEx(l4, l5, p5.x-1, p5.y-1, radius)
Contour.RoundingEx(l5, l6, p6.x-1, p6.y-1, radius)
Contour.RoundingEx(l6, l7, p7.x+1, p7.y-1, radius)
Contour.RoundingEx(l7, l8, p8.x+1, p8.y-1, radius)
Contour.RoundingEx(l8, l1, p1.x+1, p1.y+1, radius)
}
return Contour;
}
hh=770
ww=300
otstup = 70
radius = 30;
ln=NewPoint(otstup,otstup)
pv=NewPoint(ww-otstup,hh-otstup)
P = AddPanel(ww, hh);
P.Contour.Subtraction(Make6Ugol(ln,pv, 50, 50,50,50,50, 50,50,50,radius));
//P.Contour.Addition(MakeEllipse(50, 140, ww*0.5, hh*0.5));
[свернуть]