ftBg method
dynamic
ftBg(
- dynamic x,
- dynamic y,
- dynamic w,
- dynamic h,
Implementation
ftBg(x,y,w,h){
// print('x ${x.runtimeType} ${x}。${kElement['k']}');
double bgx = x;
double bgw = w;
var hhh = kElement['k']?['h']??0.0;
double bgy = y+hhh,bgh = height-hhh-1;
var drawData = {};
var lineData = [];
var rectData = [];
//=====================背景线再次重新绘制,因为之前绘制的被不透明附图区域色块覆盖了,这里采用和背景线一样的算法保持线的精准覆盖
dynamic i = 0;
double vGap =
(w / style['bgLineStyle']['property']['vCopies']); //竖线间间距
double hGap =
(h / style['bgLineStyle']['property']['hCopies']); //横线间间距
double vw = w - vGap / 2; //中间竖线的最大检测范围
double hh = h - hGap / 2; //中间横线的最大检测范围
rectData.add([
"drawRect",
[bgx, bgy, bgw, bgh]
]);
//中间横线
for (i = hGap; i < hh; i += hGap) {
if(i>=bgy){
lineData.addAll([
[
"moveTo",
[x, y + i]
],
[
"lineTo",
[x + w, y + i]
]
]);
}
}
//中间竖线
for (i = vGap; i < vw; i += vGap) {
lineData.addAll([
[
"moveTo",
[x + i, bgy],
],
[
"lineTo",
[x + i, bgy + bgh-initKXH]
]
]);
}
//边线
lineData.addAll([
[
"moveTo",
[bgx + w, bgy]
],
[
"lineTo",
[bgx + w, bgy+bgh-kXh]
],
[
"lineTo",
[bgx, bgy+bgh-kXh]
],
[
"lineTo",
[bgx, bgy]
]
]);
drawData = {'rectData':rectData,'lineData':lineData};
return drawData;
}