timeAxis method
dynamic
timeAxis(
- dynamic x,
- dynamic y,
- dynamic w,
- dynamic h,
Implementation
timeAxis(x, y, w, h) {
var pathData = {};
var linePath = [];
var txtPath = [];
var xTxtSize = {};
double xTxtWidth = 0.0;
double xOfferY = 0.0;
int xgapc = 0;
int i = 0;
if (chartData.kDataL > 0) {
//测量时间宽度
String clstr = Tools.intervalTimeFormat(chartData.klineData[0]['time'],klineState.widget.propertys['interval']);
xTxtSize = Tools.getStrW(clstr,style['xAxisStyle']['font']);
xTxtWidth = xTxtSize['width']*2;
xOfferY = (h-xTxtSize['height'])/2;
xgapc = (xTxtWidth / kWG).floor();
if (kxPreGapC != xgapc) {
kxPreGapC = xgapc;
//缩放逻辑 从新计算
kXTime = [];
for (i = kStopI-(xgapc/2).floor(); i >= kStartI; i -= xgapc) {
kXTime.insert(0, i);
}
} else {
if(kXTime.isNotEmpty){
for (i = kXTime[0] - xgapc; i >= kStartI; i -= xgapc) {
kXTime.insert(0, i);
}
for (i = kXTime[kXTime.length - 1] + xgapc;
i < kStopI-(xgapc/2).floor();
i += xgapc) {
kXTime.add(i);
}
}else{
for (i = kStopI-(xgapc/2).floor(); i >= kStartI; i -= xgapc) {
kXTime.insert(0, i);
}
}
}
var tfStr = '', tfx = 0;
for (i = 0; i < kXTime.length; i++) {
if(kXTime[i]<kStartI || kXTime[i]>kStopI)continue;
int t = Tools.getLocalTime(chartData.klineData[kXTime[i]]['time'],chartData.serveZone,chartData.timeZone);
tfStr = Tools.intervalTimeFormat(t,
klineState.widget.propertys['interval']);
tfx = ((kXTime[i] - kStartI) * kWG + kGap + kW / 2 + kStartX).floor();
txtPath.add([
tfStr,
x + tfx,
y+xOfferY,
{'xlayout': 'center'}
]);
}
}
pathData = {'linePath': linePath, 'txtPath': txtPath};
return pathData;
}