import $ from "../../assets/js/jquery-3.4.1.min";
|
import svgObject from "./svgOjbect";
|
import ConstParas from "@/utils/constParas.js";
|
import UnitHelper from "@/utils/unit.js";
|
import PointToleranceConfig from "./PointToleranceConfig.js";
|
|
|
var LxpChartDiagram = function () {
|
var m_svg;
|
|
var m_unit = { Q: 1, H: 0, P: 1 }; //功率、流量、扬程单位集合
|
var m_divChartName; //容器DIV名称
|
var m_localizationType; //语言类型
|
var m_toolTipContent; //内容提示DIV容器
|
var m_equipZeroH = 0;
|
|
var m_chartType; //类型
|
var m_pumpInfo; //基本信息
|
var m_chartPointPara;
|
var m_chartObject;
|
var m_coordinatePara; //坐标
|
var m_warterMarkText; //水印
|
|
var m_chartSetting; //设置
|
var m_displayStyle; //显示设置
|
var m_chartSize; //图表尺寸
|
|
var m_chartDiagramPanelStyle = ConstParas.ChartDiagramPanelStyle.Two;
|
|
var m_isDispCurveQE = true; //是否显示效率
|
var m_isDispNpsh; //是否显示汽蚀
|
var m_d2IsMeter = true; //公制
|
|
|
|
var m_wrkCurveGrp; //工作曲线
|
var m_designPointTolerance = [0.91, 1.09, 0.95, 1.05]; //设计点公差
|
|
|
|
|
|
//初始化显示设置
|
var initialDispStyle = function (displayStyle, chartSetting) {
|
if (displayStyle != null) {
|
m_displayStyle = displayStyle;
|
} else {
|
m_displayStyle = {};
|
m_displayStyle.IsMonoColor = false;
|
m_displayStyle.DesignPointDispType = 0; //设计点显示方式(eDesignPointDispType) Cross 0 LeftDownTriangle 2
|
}
|
//
|
if (chartSetting != null) {
|
m_displayStyle.AllowRegionDispStyle = chartSetting.AllowRegionDispStyle;
|
m_displayStyle.PerferRegionDispStyle = chartSetting.PerferRegionDispStyle;
|
m_displayStyle.IsOnlyDispWrkCurve = chartSetting.IsOnlyDispWrkCurve;
|
m_displayStyle.BlodRegionCurveWidth = 4;
|
}
|
m_displayStyle.GridLine = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none",
|
"zIndex": 10
|
};
|
//console.log(m_displayStyle)
|
|
m_isDispNpsh = true;
|
if (m_chartObject != null && m_chartObject.MaxWaterCurveNPSH == null)
|
m_isDispNpsh = false;
|
if (m_displayStyle.BlodRegionCurveWidth == null)
|
m_displayStyle.BlodRegionCurveWidth = 4;
|
m_displayStyle.ColorH = "RoyalBlue";
|
m_displayStyle.ColorE = "DarkGreen";
|
m_displayStyle.ColorP = "MediumVioletRed";
|
m_displayStyle.ColorNPSH = "Salmon";
|
m_displayStyle.ColorEquipment = "#013317";
|
m_displayStyle.ColorEqualParaCurvesE = "#402db7";
|
m_displayStyle.ColorCurveLabel = "#28004D";
|
m_displayStyle.ColorSpectrumFill = "Aquamarine";
|
m_displayStyle.ColorGridLine = "#cccccc";
|
|
if (m_displayStyle.IsMonoColor) {
|
m_displayStyle.ColorH = "#000000";
|
m_displayStyle.ColorE = "#000000";
|
m_displayStyle.ColorP = "#000000";
|
m_displayStyle.ColorNPSH = "#000000";
|
m_displayStyle.ColorEquipment = "#000000";
|
m_displayStyle.ColorEqualParaCurvesE = "#000000";
|
m_displayStyle.ColorCurveLabel = "#000000";
|
}
|
|
m_displayStyle.FeatCurveSize = 10;
|
m_displayStyle.EqualCurveSize = 9;
|
if (m_displayStyle.IsDispCurveLabel == null)
|
m_displayStyle.IsDispCurveLabel = true;
|
|
m_displayStyle.isDrawWaterMark = true;
|
m_displayStyle.isDispEquipmentCurve = false;
|
|
m_displayStyle.isDispMiniTick = true; //是否显示子刻度
|
|
m_displayStyle.isRotateLabelX = false;
|
|
m_displayStyle.isAxisIntervalX = true;
|
|
m_displayStyle.MiniTickNumber = 1;
|
};
|
//初始化面板尺寸
|
var initialPanelSize = function () {
|
var divName = m_divChartName;
|
if (divName == null) {
|
return;
|
}
|
if (m_coordinatePara == null) {
|
return;
|
}
|
//console.log(m_coordinatePara)
|
//两个版 增加一个坐标空间放坐标名称
|
if (m_chartDiagramPanelStyle == ConstParas.ChartDiagramPanelStyle.Two) {
|
m_coordinatePara.EndLineNoH = m_coordinatePara.EndLineNoH + 1;
|
m_coordinatePara.GridNumberY = m_coordinatePara.GridNumberY + 1;
|
m_coordinatePara.DispMaxH = m_coordinatePara.DispMaxH + m_coordinatePara.SpaceH;
|
|
m_coordinatePara.EndLineNoP = m_coordinatePara.EndLineNoP + 1;
|
m_coordinatePara.DispMaxP = m_coordinatePara.DispMaxP + m_coordinatePara.SpaceP;
|
}
|
//
|
var m_svgID = "FeatCurveSvg"; //暂时不知道做啥用
|
m_svg = new svgObject().init(divName, m_chartSize.TotalWidth, m_chartSize.TotalHeight, svgClick, svgMove, m_svgID);
|
|
|
if (m_coordinatePara == null)
|
return;
|
|
if (m_chartSize == null) {
|
m_chartSize = {};
|
m_chartSize.TotalWidth = document.getElementById(divName).clientWidth;
|
m_chartSize.TotalHeight = document.getElementById(divName).clientHeight;
|
}
|
|
if (m_chartSize.TotalHeight < 400)
|
m_chartSize.TotalHeight = 400;
|
|
var space_left = 42;
|
var space_right = 42;
|
var space_top = 10;
|
var space_bottom = 60;
|
|
m_chartSize.SpaceTop = space_top;
|
m_chartSize.SpaceRight = space_right;
|
m_chartSize.SpaceBottom = space_bottom;
|
m_chartSize.SpaceLeft = space_left;
|
|
m_chartSize.DiagramTop = space_top;
|
m_chartSize.DiagramLeft = space_left;
|
m_chartSize.DiagramRight = m_chartSize.TotalWidth - space_right;
|
m_chartSize.DiagramBottom = m_chartSize.TotalHeight - space_bottom;
|
|
m_chartSize.DiagramWidth = m_chartSize.TotalWidth - space_left - space_right;
|
m_chartSize.DiagramHeight = m_chartSize.TotalHeight - space_top - space_bottom;
|
|
m_chartSize.SpaceGridX = m_chartSize.DiagramWidth / m_coordinatePara.GridNumberX;
|
|
if (m_chartDiagramPanelStyle == ConstParas.ChartDiagramPanelStyle.Whole) {
|
|
m_chartSize.UpDiagram = {};
|
m_chartSize.UpDiagram.Up = space_top;
|
m_chartSize.UpDiagram.Bottom = m_chartSize.TotalHeight - space_bottom;
|
m_chartSize.UpDiagram.SpaceGridY = m_chartSize.DiagramHeight / m_coordinatePara.GridNumberY;
|
m_chartSize.UpDiagram.GridNumberY = m_coordinatePara.GridNumberY;
|
|
m_chartSize.DownDiagram = {}; //一样
|
m_chartSize.DownDiagram.Up = space_top;
|
m_chartSize.DownDiagram.Bottom = m_chartSize.TotalHeight - space_bottom;
|
m_chartSize.DownDiagram.SpaceGridY = m_chartSize.DiagramHeight / m_coordinatePara.GridNumberY;
|
m_chartSize.DownDiagram.GridNumberY = m_coordinatePara.GridNumberY;
|
|
|
m_chartSize.PanelH = {};
|
m_chartSize.PanelH.Bottom = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.StartLineNoH;
|
m_chartSize.PanelH.Up = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.EndLineNoH;
|
|
m_chartSize.PanelE = {};
|
m_chartSize.PanelE.Bottom = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.StartLineNoE;
|
m_chartSize.PanelE.Up = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.EndLineNoE;
|
|
m_chartSize.PanelP = {};
|
m_chartSize.PanelP.Bottom = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.StartLineNoP;
|
m_chartSize.PanelP.Up = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.EndLineNoP;
|
|
m_chartSize.PanelNPSH = {};
|
m_chartSize.PanelNPSH.Bottom = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.StartLineNoNPSH;
|
m_chartSize.PanelNPSH.Up = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * m_coordinatePara.EndLineNoNPSH;
|
|
//console.log(m_chartSize)
|
//把间隙弄小点
|
var areaAttr = {
|
x: space_left,
|
y: space_top,
|
width: m_chartSize.DiagramWidth,
|
height: m_chartSize.DiagramHeight
|
};
|
|
var areaStyle = {
|
"stroke-width": "1px",
|
"stroke": "#cccccc",
|
"fill": "#ffffff",
|
"fill-opacity": "0.5",
|
"zIndex:": 5
|
};
|
|
//
|
m_svg.createArea(areaAttr, areaStyle);
|
} else {
|
var panel_space = 35;
|
m_chartSize.PanelSpace = panel_space;
|
|
var grid_num_h = m_coordinatePara.EndLineNoH - m_coordinatePara.StartLineNoH;
|
var grid_num_e = m_coordinatePara.EndLineNoE - m_coordinatePara.StartLineNoE;
|
|
var grid_num_up = Math.max(grid_num_h, grid_num_e);
|
grid_num_up = grid_num_up + 2; //多两条
|
if (!m_isDispCurveQE) {
|
grid_num_up = m_coordinatePara.EndLineNoH - m_coordinatePara.StartLineNoH;
|
}
|
//console.log(grid_num_up, grid_num_h, grid_num_e) ;
|
var grid_num_NPSH = m_coordinatePara.EndLineNoNPSH - m_coordinatePara.StartLineNoNPSH;
|
var grid_num_p = m_coordinatePara.EndLineNoP - m_coordinatePara.StartLineNoP;
|
var grid_num_down = Math.max(grid_num_NPSH, grid_num_p) + 1;
|
|
|
m_chartSize.UpDiagram = {};
|
m_chartSize.UpDiagram.Up = space_top;
|
m_chartSize.UpDiagram.SpaceGridY = (m_chartSize.DiagramHeight - panel_space) / (grid_num_up + grid_num_down);
|
m_chartSize.UpDiagram.Bottom = space_top + grid_num_up * m_chartSize.UpDiagram.SpaceGridY;
|
m_chartSize.UpDiagram.GridNumberY = grid_num_up;
|
|
|
m_chartSize.DownDiagram = {};
|
m_chartSize.DownDiagram.Up = m_chartSize.UpDiagram.Bottom + panel_space;
|
m_chartSize.DownDiagram.SpaceGridY = (m_chartSize.DiagramHeight - panel_space) / (grid_num_up + grid_num_down);
|
m_chartSize.DownDiagram.Bottom = m_chartSize.TotalHeight - space_bottom;
|
m_chartSize.DownDiagram.GridNumberY = grid_num_down;
|
|
|
|
m_chartSize.PanelH = {};
|
m_chartSize.PanelH.Bottom = m_chartSize.UpDiagram.Up + m_chartSize.UpDiagram.SpaceGridY * grid_num_h;
|
m_chartSize.PanelH.Up = m_chartSize.UpDiagram.Up;
|
|
m_chartSize.PanelE = {};
|
m_chartSize.PanelE.Bottom = m_chartSize.UpDiagram.Bottom;
|
m_chartSize.PanelE.Up = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * grid_num_e;
|
|
m_chartSize.PanelP = {};
|
m_chartSize.PanelP.Up = m_chartSize.DownDiagram.Up;
|
m_chartSize.PanelP.Bottom = m_chartSize.DownDiagram.Up + m_chartSize.DownDiagram.SpaceGridY * grid_num_p;
|
|
|
m_chartSize.PanelNPSH = {};
|
m_chartSize.PanelNPSH.Bottom = m_chartSize.DownDiagram.Bottom;
|
m_chartSize.PanelNPSH.Up = m_chartSize.DownDiagram.Bottom - m_chartSize.DownDiagram.SpaceGridY * grid_num_NPSH;
|
|
//console.log(m_chartSize)
|
}
|
};
|
//
|
var getSvgObjByName = function (objName) {
|
return m_svg.getPathByName(objName);
|
};
|
//代码临时注释
|
var svgClick = function (e) {
|
|
};
|
//
|
var svgMove = function (e) {
|
//alert("svgMove");
|
};
|
|
//翻译
|
var getTranslateString = function (cn) {
|
if (m_localizationType == 0)
|
return cn;
|
if (cn == "流量")
|
return "Flow";
|
else if (cn == "压力")
|
return "Press";
|
else if (cn == "扬程")
|
return "Head";
|
else if (cn == "效率")
|
return "Eta";
|
else if (cn == "功率")
|
return "Power";
|
else
|
return cn;
|
};
|
//绘制x坐标(含标题)
|
var createXAxis = function (bottom_posi, title_space) {
|
if (m_coordinatePara == null) {
|
return;
|
}
|
|
//刻度线
|
var attrAxisTickX = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none",
|
"zIndex": 10
|
};
|
|
//刻度长度
|
var minTickLength = 4;
|
var tickLength = 6;
|
|
//刻度文字
|
var styleAxisLabelX = "font-size:11px;fill-opacity:1;fill:black;"; //font-weight:bold
|
|
//标题文字
|
var styleAxisTitleX = "font-size:12px;fill-opacity:1;fill:black;font-weight:bold;";
|
|
m_displayStyle.isAxisIntervalX = false;
|
if (m_coordinatePara.GridNumberX > 7)
|
m_displayStyle.isAxisIntervalX = true;
|
//
|
for (var i = 0; i <= m_coordinatePara.GridNumberX; i++) {
|
|
let q = m_coordinatePara.MinQ + i * m_coordinatePara.SpaceQ;
|
//console.log(q)
|
var content = UnitHelper.valueFormat(UnitHelper.getDispValueQ(UnitHelper.ConvertQ_fromM3H(m_unit.Q, q)));
|
var posiX_grid = m_chartSize.DiagramLeft + m_chartSize.SpaceGridX * i;
|
//刻度线
|
var valueMain = new Array();
|
valueMain.push("M ", posiX_grid, " ", bottom_posi, " L ", posiX_grid, " ", bottom_posi + tickLength);
|
m_svg.createPath("TickLineX" + i, valueMain.join(''), attrAxisTickX, null);
|
|
//文字 m_displayStyle.isAxisIntervalX
|
var label_y = bottom_posi + tickLength + 15;
|
if (m_displayStyle.isRotateLabelX)
|
label_y = label_y + 1;
|
var attrAxisLabelX = {
|
"opacity": 1,
|
"x": posiX_grid,
|
"y": label_y,
|
"text-anchor": "middle"
|
};
|
var transform = null;
|
if (m_displayStyle.isRotateLabelX)
|
transform = "rotate(45 " + posiX_grid + "," + label_y + ")";
|
if (m_displayStyle.isAxisIntervalX) {
|
if (i % 2 == 0)
|
m_svg.createText(attrAxisLabelX, styleAxisLabelX, content, 10, null, transform);
|
} else {
|
m_svg.createText(attrAxisLabelX, styleAxisLabelX, content, 10, null, transform);
|
}
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != m_coordinatePara.GridNumberX) {
|
for (var j = 0; j <= m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiX_grid + m_chartSize.SpaceGridX * j / (m_displayStyle.MiniTickNumber + 1);
|
var valueMini = new Array();
|
valueMini.push("M ", pois_minTick, " ", bottom_posi, " L ", pois_minTick, " ", bottom_posi + minTickLength);
|
m_svg.createPath("TickMinLineX" + i, valueMini.join(''), attrAxisTickX, null);
|
}
|
}
|
}
|
|
if (title_space > 0) {
|
var attrAxisTitleX = {
|
"opacity": 1,
|
"x": (m_chartSize.DiagramLeft + m_chartSize.DiagramRight) / 2,
|
"y": bottom_posi + title_space + 4,
|
"text-anchor": "middle"
|
};
|
if (m_displayStyle.isRotateLabelX)
|
attrAxisTitleX.y = attrAxisTitleX.y + 12;
|
|
let unit_name = UnitHelper.GetUnitNameQ(m_unit.Q);
|
var axis_title = getTranslateString("流量") + " (" + unit_name + ")";
|
m_svg.createText(attrAxisTitleX, styleAxisTitleX, axis_title);
|
}
|
|
};
|
//绘制Y坐标(含标题)
|
var createYAxis_Whole = function () {
|
if (m_coordinatePara == null) {
|
return;
|
}
|
|
//刻度长度
|
var minTickLength = 3;
|
var tickLength = 6;
|
|
//扬程
|
if (m_coordinatePara.EndLineNoH > m_coordinatePara.StartLineNoH) {
|
//刻度线
|
var attrAxisTickH = {
|
"stroke": m_displayStyle.ColorH,
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
//刻度文字
|
var styleAxisLabelH = "font-size:11px; fill-opacity:1; fill:" + m_displayStyle.ColorH + ";";
|
//标签
|
var styleAxisTitleH = "font-size:13px; ;fill-opacity:1; font-weight:bold; fill:" + m_displayStyle.ColorH + ";";
|
|
//标签
|
var axis_name = "扬程";
|
if (m_localizationType == 0) { //中文
|
if (m_unit.H == UnitHelper.H.MPa || m_unit.H == UnitHelper.H.KPa) {
|
axis_name = "压力";
|
} else {
|
axis_name = "扬程";
|
}
|
} else {
|
if (m_unit.H == UnitHelper.H.MPa) {
|
axis_name = "Press (MPa)";
|
}
|
if (m_unit.H == UnitHelper.H.KPa) {
|
axis_name = "Press (KPa)";
|
}
|
}
|
let unit_h_name = UnitHelper.GetUnitNameH(m_unit.H);
|
var title_content = axis_name + "(" + unit_h_name + ")";
|
|
//
|
for (var i = m_coordinatePara.StartLineNoH; i <= m_coordinatePara.EndLineNoH; i++) {
|
|
var posiY_grid = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * i;
|
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramLeft, " ", posiY_grid, " L ", m_chartSize.DiagramLeft - tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineH" + i, valueMain.join(''), attrAxisTickH, null);
|
|
//文字
|
var attrAxisLabelH = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramLeft - 10,
|
"y": posiY_grid + 5,
|
"text-anchor": "end"
|
};
|
var content = UnitHelper.valueFormat(m_coordinatePara.MinH + i * m_coordinatePara.SpaceH);
|
if (i == m_coordinatePara.EndLineNoH)
|
content = title_content;
|
|
m_svg.createText(attrAxisLabelH, styleAxisLabelH, content);
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != m_coordinatePara.EndLineNoH) {
|
for (var j = 1; j <= m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.UpDiagram.SpaceGridY * j / (m_displayStyle.MiniTickNumber + 1);
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramLeft, " ", pois_minTick, " L ", m_chartSize.DiagramLeft - minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineH" + i, valueMini.join(''), attrAxisTickH, null);
|
}
|
}
|
}
|
}
|
|
|
//效率
|
if (m_coordinatePara.EndLineNoE > m_coordinatePara.StartLineNoE && m_isDispCurveQE) {
|
//刻度线
|
var attrAxisTickE = {
|
"stroke": m_displayStyle.ColorE,
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
//刻度文字
|
var styleAxisLabelE = "font-size:11px; fill-opacity:1; fill:" + m_displayStyle.ColorE + ";";
|
//标签
|
var styleAxisTitleE = "font-size:13px; ;fill-opacity:1; font-weight:bold; fill:" + m_displayStyle.ColorE + ";";
|
//
|
var attrAxisTitleE = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramRight + 44,
|
"y": m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * ((m_coordinatePara.EndLineNoE - m_coordinatePara.StartLineNoE) / 2 +
|
m_coordinatePara.StartLineNoE) - 10,
|
"text-anchor": "middle"
|
};
|
|
//标签
|
if (m_localizationType == 0) { //中文
|
attrAxisTitleE.y = attrAxisTitleE.y - 5;
|
m_svg.createText(attrAxisTitleE, styleAxisTitleE, "效");
|
attrAxisTitleE.y = attrAxisTitleE.y + 15;
|
m_svg.createText(attrAxisTitleE, styleAxisTitleE, "率");
|
|
attrAxisTitleE.x = attrAxisTitleE.x + 6;
|
attrAxisTitleE.y = attrAxisTitleE.y + 24;
|
var transform = "rotate(-90 " + attrAxisTitleE.x + "," + attrAxisTitleE.y + ")";
|
m_svg.createText(attrAxisTitleE, styleAxisTitleE, "(%)", 10, null, transform);
|
} else {
|
attrAxisTitleE.x = attrAxisTitleE.x + 6;
|
attrAxisTitleE.y = attrAxisTitleE.y + 24;
|
var transform = "rotate(-90 " + attrAxisTitleE.x + "," + attrAxisTitleE.y + ")";
|
m_svg.createText(attrAxisTitleE, styleAxisTitleE, "Eta (%)", 10, null, transform);
|
}
|
|
//
|
for (var i = m_coordinatePara.StartLineNoE; i <= m_coordinatePara.EndLineNoE; i++) {
|
var content = m_coordinatePara.MinE + i * m_coordinatePara.SpaceE;
|
var posiY_grid = m_chartSize.UpDiagram.Bottom - m_chartSize.UpDiagram.SpaceGridY * i;
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramRight, " ", posiY_grid, " L ", m_chartSize.DiagramRight + tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineP" + i, valueMain.join(''), attrAxisTickE, null);
|
|
//文字
|
var attrAxisLabelE = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramRight + 10,
|
"y": posiY_grid + 5
|
};
|
m_svg.createText(attrAxisLabelE, styleAxisLabelE, content);
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != m_coordinatePara.EndLineNoE) {
|
for (var j = 0; j < m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.UpDiagram.SpaceGridY * j / m_displayStyle.MiniTickNumber;
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramRight, " ", pois_minTick, " L ", m_chartSize.DiagramRight + minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineE" + i, valueMini.join(''), attrAxisTickE, null);
|
}
|
}
|
|
}
|
}
|
|
//功率
|
if (m_coordinatePara.EndLineNoP > m_coordinatePara.StartLineNoP) {
|
//刻度线
|
var attrAxisTickP = {
|
"stroke": m_displayStyle.ColorP,
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
let unit_p_name = UnitHelper.GetUnitNameP(m_unit.P);
|
|
//刻度文字
|
var styleAxisLabelP = "font-size:11px; fill-opacity:1; fill:" + m_displayStyle.ColorP + ";";
|
//标签
|
var styleAxisTitleP = "font-size:13px; ;fill-opacity:1; font-weight:bold; fill:" + m_displayStyle.ColorP + ";";
|
|
//标签
|
if (m_localizationType == 0) { //中文
|
var attrAxisTitleP = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramLeft - 52,
|
"y": m_chartSize.DownDiagram.Bottom - m_chartSize.DownDiagram.SpaceGridY * ((m_coordinatePara.EndLineNoP - m_coordinatePara.StartLineNoP) / 2 +
|
m_coordinatePara.StartLineNoP),
|
"text-anchor": "middle"
|
};
|
if (m_coordinatePara.SpaceP <= 0.1) {
|
attrAxisTitleP.x = attrAxisTitleP.x - 5;
|
}
|
attrAxisTitleP.y = attrAxisTitleP.y - 5;
|
m_svg.createText(attrAxisTitleP, styleAxisTitleP, "功");
|
attrAxisTitleP.y = attrAxisTitleP.y + 15;
|
m_svg.createText(attrAxisTitleP, styleAxisTitleP, "率");
|
|
attrAxisTitleP.x = attrAxisTitleP.x + 2;
|
attrAxisTitleP.y = attrAxisTitleP.y + 25;
|
var transform = "rotate(-90 " + attrAxisTitleP.x + "," + attrAxisTitleP.y + ")";
|
m_svg.createText(attrAxisTitleP, styleAxisTitleP, "(" + unit_p_name + ")", 10, null, transform);
|
} else {
|
var attrAxisTitleP = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramLeft - 60,
|
"y": m_chartSize.DownDiagram.Bottom - m_chartSize.DownDiagram.SpaceGridY * ((m_coordinatePara.EndLineNoP - m_coordinatePara.StartLineNoP) / 2 +
|
m_coordinatePara.StartLineNoP) - 10,
|
"text-anchor": "middle"
|
};
|
if (m_coordinatePara.SpaceP <= 0.1) {
|
attrAxisTitleP.x = attrAxisTitleP.x - 5;
|
}
|
attrAxisTitleP.x = attrAxisTitleP.x + 13;
|
attrAxisTitleP.y = attrAxisTitleP.y + 25;
|
var transform = "rotate(-90 " + attrAxisTitleP.x + "," + attrAxisTitleP.y + ")";
|
m_svg.createText(attrAxisTitleP, styleAxisTitleP, "Power (" + unit_p_name + ")", 10, null, transform);
|
}
|
|
//
|
for (var i = m_coordinatePara.StartLineNoP; i <= m_coordinatePara.EndLineNoP; i++) {
|
var content = UnitHelper.valueFormat(m_coordinatePara.MinP + i * m_coordinatePara.SpaceP);
|
|
content = UnitHelper.formatToFixed(parseFloat(UnitHelper.ConvertP(UnitHelper.P.KW, m_unit.P, content)), 1)
|
|
var posiY_grid = m_chartSize.DownDiagram.Bottom - m_chartSize.DownDiagram.SpaceGridY * i;
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramLeft, " ", posiY_grid, " L ", m_chartSize.DiagramLeft - tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineP" + i, valueMain.join(''), attrAxisTickP, null);
|
|
//文字
|
var attrAxisLabelP = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramLeft - 10,
|
"y": posiY_grid + 5,
|
"text-anchor": "end"
|
};
|
|
m_svg.createText(attrAxisLabelP, styleAxisLabelP, content);
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != m_coordinatePara.EndLineNoP && i != m_coordinatePara.EndLineNoE) {
|
for (var j = 1; j < m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.DownDiagram.SpaceGridY * j / m_displayStyle.MiniTickNumber;
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramLeft, " ", pois_minTick, " L ", m_chartSize.DiagramLeft - minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineP" + i, valueMini.join(''), attrAxisTickP, null);
|
}
|
}
|
|
}
|
}
|
|
|
|
|
//汽蚀
|
if (m_isDispNpsh && m_coordinatePara.EndLineNoNPSH > m_coordinatePara.StartLineNoNPSH) {
|
//刻度线
|
var attrAxisTickNPSH = {
|
"stroke": m_displayStyle.ColorNPSH,
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
//刻度文字
|
var styleAxisLabelNPSH = "font-size:11px; fill-opacity:1; fill:" + m_displayStyle.ColorNPSH + ";";
|
//标签
|
var styleAxisTitleNPSH = "font-size:13px; ;fill-opacity:1; font-weight:bold; fill:" + m_displayStyle.ColorNPSH + ";";
|
|
//标签
|
var attrAxisTitleNPSH = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramRight + 44,
|
"y": m_chartSize.DownDiagram.Bottom - m_chartSize.DownDiagram.SpaceGridY * ((m_coordinatePara.EndLineNoNPSH - m_coordinatePara.StartLineNoNPSH) / 2 +
|
m_coordinatePara.StartLineNoNPSH) - 10,
|
"text-anchor": "middle"
|
};
|
if (m_localizationType == 0) { //中文
|
attrAxisTitleNPSH.y = attrAxisTitleNPSH.y - 5;
|
m_svg.createText(attrAxisTitleNPSH, styleAxisTitleNPSH, "汽");
|
attrAxisTitleNPSH.y = attrAxisTitleNPSH.y + 15;
|
m_svg.createText(attrAxisTitleNPSH, styleAxisTitleNPSH, "蚀");
|
attrAxisTitleNPSH.x = attrAxisTitleNPSH.x + 6;
|
attrAxisTitleNPSH.y = attrAxisTitleNPSH.y + 24;
|
var transform = "rotate(-90 " + attrAxisTitleNPSH.x + "," + attrAxisTitleNPSH.y + ")";
|
m_svg.createText(attrAxisTitleNPSH, styleAxisTitleNPSH, "(m)", 10, null, transform);
|
} else {
|
attrAxisTitleNPSH.x = attrAxisTitleNPSH.x + 6;
|
attrAxisTitleNPSH.y = attrAxisTitleNPSH.y + 24;
|
var transform = "rotate(-90 " + attrAxisTitleNPSH.x + "," + attrAxisTitleNPSH.y + ")";
|
m_svg.createText(attrAxisTitleNPSH, styleAxisTitleNPSH, "NPSHr (m)", 10, null, transform);
|
}
|
|
//
|
for (var i = m_coordinatePara.StartLineNoNPSH; i <= m_coordinatePara.EndLineNoNPSH; i++) {
|
var content = UnitHelper.valueFormat(m_coordinatePara.MinNPSH + i * m_coordinatePara.SpaceNPSH);
|
var posiY_grid = m_chartSize.DownDiagram.Bottom - m_chartSize.DownDiagram.SpaceGridY * i;
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramRight, " ", posiY_grid, " L ", m_chartSize.DiagramRight + tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineNPSH" + i, valueMain.join(''), attrAxisTickNPSH, null);
|
|
//文字
|
var attrAxisLabelNPSH = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramRight + 10,
|
"y": posiY_grid + 5
|
};
|
m_svg.createText(attrAxisLabelNPSH, styleAxisLabelNPSH, content);
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != m_coordinatePara.EndLineNoNPSH) {
|
for (var j = 0; j < m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.DownDiagram.SpaceGridY * j / m_displayStyle.MiniTickNumber;
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramRight, " ", pois_minTick, " L ", m_chartSize.DiagramRight + minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineE" + i, valueMini.join(''), attrAxisTickNPSH, null);
|
}
|
}
|
}
|
}
|
};
|
//绘制Y坐标(含标题)
|
var createYAxis_TwoPanel = function () {
|
if (m_coordinatePara == null) {
|
return;
|
}
|
|
//刻度长度
|
var minTickLength = 3;
|
var tickLength = 6;
|
|
//扬程
|
if (m_coordinatePara.EndLineNoH > m_coordinatePara.StartLineNoH) {
|
//刻度线
|
var attrAxisTickH = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
//刻度文字
|
var styleAxisLabelH = "font-size:11px; fill-opacity:1; fill:" + m_displayStyle.ColorH + ";";
|
|
let unit_h_name = UnitHelper.GetUnitNameH(m_unit.H);
|
|
|
var axis_title_content = "扬程";
|
if (m_localizationType == 0) { //中文
|
if (m_unit.H == UnitHelper.H.MPa || m_unit.H == UnitHelper.H.KPa) {
|
axis_title_content = "压力";
|
} else {
|
axis_title_content = "扬程";
|
}
|
} else {
|
if (m_unit.H == UnitHelper.H.MPa || m_unit.H == UnitHelper.H.KPa) {
|
axis_title_content = "Press";
|
} else {
|
axis_title_content = "Head";
|
}
|
}
|
|
|
//
|
for (var i = 0; i <= m_coordinatePara.EndLineNoH - m_coordinatePara.StartLineNoH; i++) {
|
|
var posiY_grid = m_chartSize.PanelH.Bottom - m_chartSize.UpDiagram.SpaceGridY * i;
|
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramLeft, " ", posiY_grid, " L ", m_chartSize.DiagramLeft - tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineH" + i, valueMain.join(''), attrAxisTickH, null);
|
|
//文字
|
var attrAxisLabelH = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramLeft - 10,
|
"y": posiY_grid + 5,
|
"text-anchor": "end"
|
};
|
|
if (i == m_coordinatePara.EndLineNoH - m_coordinatePara.StartLineNoH) {
|
attrAxisLabelH.x = attrAxisLabelH.x - 3;
|
attrAxisLabelH.y = attrAxisLabelH.y - 3;
|
m_svg.createText(attrAxisLabelH, styleAxisLabelH, axis_title_content);
|
attrAxisLabelH.x = attrAxisLabelH.x - 4;
|
attrAxisLabelH.y = attrAxisLabelH.y + 13;
|
m_svg.createText(attrAxisLabelH, styleAxisLabelH, "(" + unit_h_name + ")");
|
} else {
|
var axis_h = m_coordinatePara.MinH + (i + m_coordinatePara.StartLineNoH) * m_coordinatePara.SpaceH;
|
if (axis_h < -0.01)
|
continue;
|
|
var content = UnitHelper.valueFormat(axis_h);
|
m_svg.createText(attrAxisLabelH, styleAxisLabelH, content);
|
}
|
|
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != (m_coordinatePara.EndLineNoH - m_coordinatePara.StartLineNoH)) {
|
for (var j = 1; j <= m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.UpDiagram.SpaceGridY * j / (m_displayStyle.MiniTickNumber + 1);
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramLeft, " ", pois_minTick, " L ", m_chartSize.DiagramLeft - minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineH" + i, valueMini.join(''), attrAxisTickH, null);
|
}
|
}
|
}
|
}
|
|
|
//效率
|
if (m_coordinatePara.EndLineNoE > m_coordinatePara.StartLineNoE && m_isDispCurveQE) {
|
//刻度线
|
var attrAxisTickE = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
//刻度文字
|
var styleAxisLabelE = "font-size:10px; fill-opacity:1; fill:" + m_displayStyle.ColorE + ";";
|
var axis_title_content = "效率";
|
if (m_localizationType == 0) { //中文
|
axis_title_content = "效率";
|
} else {
|
axis_title_content = "Eta";
|
}
|
|
//
|
var count_axis_e = m_coordinatePara.EndLineNoE - m_coordinatePara.StartLineNoE+1;//多一条放效率的文字
|
for (var i = 0; i <= count_axis_e; i++) {
|
|
var posiY_grid = m_chartSize.PanelE.Bottom - m_chartSize.UpDiagram.SpaceGridY * i;
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramRight, " ", posiY_grid, " L ", m_chartSize.DiagramRight + tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineP" + i, valueMain.join(''), attrAxisTickE, null);
|
|
//文字
|
var attrAxisLabelE = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramRight + 10,
|
"y": posiY_grid + 5
|
};
|
if (i == count_axis_e) {
|
attrAxisLabelE.x = attrAxisLabelE.x + 3;
|
attrAxisLabelE.y = attrAxisLabelE.y - 15;
|
m_svg.createText(attrAxisLabelE, styleAxisLabelE, axis_title_content);
|
attrAxisLabelE.x = attrAxisLabelE.x + 3;
|
attrAxisLabelE.y = attrAxisLabelE.y + 13;
|
m_svg.createText(attrAxisLabelE, styleAxisLabelE, "(%)");
|
} else {
|
var axis_e = UnitHelper.valueFormat(m_coordinatePara.MinE + (i + m_coordinatePara.StartLineNoE) * m_coordinatePara.SpaceE);
|
if (axis_e < -0.01)
|
continue;
|
var content = UnitHelper.valueFormat(axis_e);
|
m_svg.createText(attrAxisLabelE, styleAxisLabelE, content);
|
}
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != (m_coordinatePara.EndLineNoE - m_coordinatePara.StartLineNoE)) {
|
for (var j = 0; j < m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.UpDiagram.SpaceGridY * j / m_displayStyle.MiniTickNumber;
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramRight, " ", pois_minTick, " L ", m_chartSize.DiagramRight + minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineE" + i, valueMini.join(''), attrAxisTickE, null);
|
}
|
}
|
|
}
|
}
|
|
//功率
|
if (m_coordinatePara.EndLineNoP > m_coordinatePara.StartLineNoP) {
|
//刻度线
|
var attrAxisTickP = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
let unit_p_name = UnitHelper.GetUnitNameP(m_unit.P);
|
|
//刻度文字
|
var styleAxisLabelP = "font-size:10px; fill-opacity:1; fill:" + m_displayStyle.ColorP + ";";
|
|
var axis_title_content = "功率";
|
if (m_localizationType == 0) { //中文
|
axis_title_content = "功率";
|
} else {
|
axis_title_content = "Power";
|
}
|
|
//
|
for (var i = 0; i <= m_coordinatePara.EndLineNoP - m_coordinatePara.StartLineNoP; i++) {
|
|
var posiY_grid = m_chartSize.PanelP.Bottom - m_chartSize.DownDiagram.SpaceGridY * i;
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramLeft, " ", posiY_grid, " L ", m_chartSize.DiagramLeft - tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineP" + i, valueMain.join(''), attrAxisTickP, null);
|
|
//文字
|
var attrAxisLabelP = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramLeft - 10,
|
"y": posiY_grid + 5,
|
"text-anchor": "end"
|
};
|
if (i == m_coordinatePara.EndLineNoP - m_coordinatePara.StartLineNoP) {
|
attrAxisLabelP.x = attrAxisLabelP.x - 3;
|
attrAxisLabelP.y = attrAxisLabelP.y - 3;
|
m_svg.createText(attrAxisLabelP, styleAxisLabelP, axis_title_content);
|
attrAxisLabelP.x = attrAxisLabelP.x - 2;
|
attrAxisLabelP.y = attrAxisLabelP.y + 13;
|
m_svg.createText(attrAxisLabelP, styleAxisLabelP, "(" + unit_p_name + ")");
|
} else {
|
var aixs_p = UnitHelper.valueFormat(UnitHelper.getDispValueP(UnitHelper.ConvertP_fromKW(m_unit.P,
|
m_coordinatePara.MinP + (i + m_coordinatePara.StartLineNoP) * m_coordinatePara.SpaceP)));
|
if (aixs_p < -0.01)
|
continue;
|
var content = UnitHelper.toStringTrim(aixs_p);
|
m_svg.createText(attrAxisLabelP, styleAxisLabelP, content);
|
}
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != m_coordinatePara.EndLineNoP && i != (m_coordinatePara.EndLineNoP - m_coordinatePara.StartLineNoP)) {
|
for (var j = 1; j < m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.DownDiagram.SpaceGridY * j / m_displayStyle.MiniTickNumber;
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramLeft, " ", pois_minTick, " L ", m_chartSize.DiagramLeft - minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineP" + i, valueMini.join(''), attrAxisTickP, null);
|
}
|
}
|
|
}
|
}
|
|
|
|
|
//汽蚀
|
if (m_isDispNpsh && m_coordinatePara.EndLineNoNPSH > m_coordinatePara.StartLineNoNPSH) {
|
//刻度线
|
var attrAxisTickNPSH = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none"
|
};
|
|
//刻度文字
|
var styleAxisLabelNPSH = "font-size:10px; fill-opacity:1; fill:" + m_displayStyle.ColorNPSH + ";";
|
|
var axis_title_content = "汽蚀";
|
if (m_localizationType == 0) { //中文
|
axis_title_content = "汽蚀";
|
} else {
|
axis_title_content = "NPSHr";
|
}
|
|
//
|
for (var i = 0; i <= m_coordinatePara.EndLineNoNPSH - m_coordinatePara.StartLineNoNPSH + 1; i++) {
|
|
var posiY_grid = m_chartSize.PanelNPSH.Bottom - m_chartSize.DownDiagram.SpaceGridY * i;
|
|
//文字
|
var attrAxisLabelNPSH = {
|
"opacity": 1,
|
"x": m_chartSize.DiagramRight + 10,
|
"y": posiY_grid + 5
|
};
|
if (i == m_coordinatePara.EndLineNoNPSH - m_coordinatePara.StartLineNoNPSH + 1) {
|
attrAxisLabelNPSH.x = attrAxisLabelNPSH.x + 3;
|
attrAxisLabelNPSH.y = attrAxisLabelNPSH.y - 15;
|
m_svg.createText(attrAxisLabelNPSH, styleAxisLabelNPSH, axis_title_content);
|
attrAxisLabelNPSH.x = attrAxisLabelNPSH.x + 3;
|
attrAxisLabelNPSH.y = attrAxisLabelNPSH.y + 13;
|
m_svg.createText(attrAxisLabelNPSH, styleAxisLabelNPSH, "(m)");
|
} else {
|
//主刻度
|
var valueMain = new Array();
|
valueMain.push("M ", m_chartSize.DiagramRight, " ", posiY_grid, " L ", m_chartSize.DiagramRight + tickLength, " ", posiY_grid);
|
m_svg.createPath("TickLineNPSH" + i, valueMain.join(''), attrAxisTickNPSH, null);
|
|
var content = UnitHelper.valueFormat(m_coordinatePara.MinNPSH + (i + m_coordinatePara.StartLineNoNPSH) * m_coordinatePara.SpaceNPSH);
|
m_svg.createText(attrAxisLabelNPSH, styleAxisLabelNPSH, content);
|
}
|
|
|
//子刻度线
|
if (m_displayStyle.isDispMiniTick && i != (m_coordinatePara.EndLineNoNPSH - m_coordinatePara.StartLineNoNPSH)) {
|
for (var j = 0; j < m_displayStyle.MiniTickNumber; j++) {
|
var pois_minTick = posiY_grid - m_chartSize.DownDiagram.SpaceGridY * j / m_displayStyle.MiniTickNumber;
|
var valueMini = new Array();
|
valueMini.push("M ", m_chartSize.DiagramRight, " ", pois_minTick, " L ", m_chartSize.DiagramRight + minTickLength, " ", pois_minTick);
|
m_svg.createPath("TickMinLineE" + i, valueMini.join(''), attrAxisTickNPSH, null);
|
}
|
}
|
}
|
}
|
};
|
//绘制面板
|
var drawDiagramPanel = function () {
|
|
if (m_chartDiagramPanelStyle == ConstParas.ChartDiagramPanelStyle.Whole) {
|
//绘制网格线
|
createGridLineDiagram_Whole();
|
|
//绘制X坐标
|
createXAxis(m_chartSize.DownDiagram.Bottom, 40);
|
|
//绘制Y坐标
|
createYAxis_Whole();
|
} else {
|
//绘制网格线
|
createGridLineDiagram_TwoPanel();
|
|
//绘制X坐标
|
createXAxis(m_chartSize.UpDiagram.Bottom, 0);
|
createXAxis(m_chartSize.DownDiagram.Bottom, 40);
|
|
//绘制Y坐标
|
createYAxis_TwoPanel();
|
}
|
};
|
//产生装置曲线
|
var drawEquipmentCurve = function () {
|
$("#EquipmentCurve").remove();
|
if (m_chartObject.EquipmentSectPt == null)
|
return;
|
var pointNumber = 20;
|
var EquipmentCurve = [];
|
var space = m_chartObject.EquipmentSectPt.X / (pointNumber - 1);
|
var k = (m_chartObject.EquipmentSectPt.Y - m_equipZeroH) / (m_chartObject.EquipmentSectPt.X * m_chartObject.EquipmentSectPt.X);
|
for (var i = 0; i < pointNumber; i++) {
|
var pt = {};
|
pt.X = space * i;
|
pt.Y = m_equipZeroH + k * pt.X * pt.X;
|
EquipmentCurve.push(pt);
|
}
|
createCurveQH("EquipmentCurve", EquipmentCurve, 1, m_displayStyle.ColorEquipment, m_displayStyle.isDispEquipmentCurve);
|
};
|
|
//产生型谱
|
var createSpectrumShape = function (spectrumShape) {
|
if (spectrumShape == null)
|
return;
|
|
var pathValue = new Array();
|
|
var coordinates_Left = new Array();
|
var points = spectrumShape["LeftParabolaPoints"];
|
for (var v = 0; v < points.length; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.Y);
|
var y = getPixelValueH(pt.Y);
|
coordinates_Left.push({ "X": x, "Y": y });
|
}
|
var bezierCurveValue = transBezierCurveModel(coordinates_Left);
|
for (var h = 0; h < bezierCurveValue.length; h++) {
|
if (h == 0) {
|
pathValue.push("M ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
} else {
|
pathValue.push(" L ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
}
|
}
|
|
var coordinates_Top = new Array();
|
points = spectrumShape["BasePoints"];
|
for (var v = 0; v < points.length; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.Y);
|
var y = getPixelValueH(pt.Y);
|
coordinates_Top.push({ "X": x, "Y": y });
|
}
|
bezierCurveValue = transBezierCurveModel(coordinates_Top);
|
for (var h = 0; h < bezierCurveValue.length; h++) {
|
|
pathValue.push(" L ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
}
|
|
|
var coordinates_bottom = new Array();
|
points = spectrumShape["SimularPoints"];
|
for (var v = 0; v < points.length; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.Y);
|
var y = getPixelValueH(pt.Y);
|
coordinates_bottom.push({ "X": x, "Y": y });
|
}
|
bezierCurveValue = transBezierCurveModel(coordinates_bottom);
|
for (var h = 0; h < bezierCurveValue.length; h++) {
|
pathValue.push(" L ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
}
|
|
|
var coordinates_right = new Array();
|
points = spectrumShape["RightParabolaPoints"];
|
for (var v = 0; v < points.length; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.Y);
|
var y = getPixelValueH(pt.Y);
|
coordinates_right.push({ "X": x, "Y": y });
|
}
|
var bezierCurveValue = transBezierCurveModel(coordinates_right);
|
for (var h = 0; h < bezierCurveValue.length; h++) {
|
|
pathValue.push(" L ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
if (h == bezierCurveValue.length - 1) {
|
pathValue.push(" L ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
}
|
}
|
|
//有时会报错,加上这个就没事 tangxu 20151122
|
if (pathValue.toString().indexOf("M ,NaN, ,NaN") == 0) {
|
return;
|
};
|
|
var style = {
|
"stroke-width": "1",
|
"stroke": "none",
|
"fill": "yellow",
|
"stroke-opacity": '0.1',
|
"fill-opacity": "0.3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": -1
|
};
|
m_svg.createPath("SpectrumShape", pathValue.join(''), {
|
"id": "SpectrumShape"
|
}, style);
|
};
|
|
//绘制曲线(流量扬程)
|
var createCurveQH = function (curveElementName, curvePoints, curveWidth, curveColor, curveIsDisp, curveDashType) {
|
if (curvePoints == null) {
|
return;
|
}
|
if (curveElementName == null) {
|
return;
|
}
|
|
var pixelPoints = new Array();
|
for (var v = 0; v < curvePoints.length; v++) {
|
var pt = curvePoints[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueH(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
|
return createCurveQH_pixel(curveElementName, pixelPoints, curveWidth, curveColor, curveIsDisp, curveDashType);
|
};
|
//绘制曲线(流量扬程) : 像素点
|
var createCurveQH_pixel = function (curveElementName, pixelPoints, curveWidth, curveColor, isDisp, curveDashType) {
|
if (pixelPoints == null || pixelPoints.length < 3) {
|
return;
|
}
|
if (curveElementName == null) {
|
return;
|
}
|
var pathValue = transBezierCurveToPath(pixelPoints);
|
if (pathValue == null || pathValue == undefined)
|
return;
|
//有时会报错,加上这个就没事 tangxu 20151122
|
if (pathValue.toString().indexOf("M ,NaN, ,NaN") == 0) {
|
return;
|
};
|
|
var style = {
|
"stroke-width": "2px",
|
"stroke": m_displayStyle.ColorH,
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 7
|
};
|
if (curveWidth != null) {
|
style["stroke-width"] = curveWidth;
|
}
|
if (curveColor != null) {
|
style["stroke"] = curveColor;
|
}
|
if (curveDashType != null) {
|
style["stroke-dasharray"] = curveDashType; //'10, 10';//'10, 10, 5, 5'
|
}
|
|
m_svg.createPath(curveElementName, pathValue.join(''), {
|
"id": curveElementName
|
}, style);
|
if (isDisp != null && !isDisp) {
|
$("#" + curveElementName).hide();
|
}
|
return pixelPoints;
|
};
|
//绘制直线
|
var createLineQH = function (curveElementName, point1, point2, curveWidth, curveColor, objTag) {
|
if (point1 == null || point2 == null) {
|
return;
|
}
|
if (curveElementName == null) {
|
return;
|
}
|
var x1 = getPixelValueQ(point1.X);
|
var y1 = getPixelValueH(point1.Y);
|
|
|
var x2 = getPixelValueQ(point2.X);
|
var y2 = getPixelValueH(point2.Y);
|
|
var style = {
|
"stroke-width": "2px",
|
"stroke": m_displayStyle.ColorH,
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 7
|
};
|
if (curveWidth != null) {
|
style["stroke-width"] = curveWidth;
|
}
|
if (curveColor != null) {
|
style["stroke"] = curveColor;
|
}
|
var temp = "M x1 y1 L x2 y2";
|
var pathValue = temp.replace("x1", x1).replace("y1", y1).replace("x2", x2).replace("y2", y2);
|
if (objTag == null)
|
m_svg.createPath(curveElementName, pathValue, null, style);
|
else
|
m_svg.createPath(curveElementName, pathValue, { "tag": objTag }, style);
|
};
|
//绘制点
|
var createPointQH = function (curveElementName, point, circleSize, circleColor) {
|
if (point == null) {
|
return;
|
}
|
if (curveElementName == null) {
|
return;
|
}
|
|
var xPixel = getPixelValueQ(point.X);
|
var yPixel = getPixelValueH(point.Y);
|
|
var attr = {
|
"cx": xPixel,
|
"cy": yPixel,
|
"r": 2
|
}
|
var style = {
|
"stroke-width": "2px",
|
"stroke": m_displayStyle.ColorH,
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 7
|
};
|
if (circleSize != null) {
|
attr.r = circleSize;
|
}
|
if (circleColor != null) {
|
style["stroke"] = circleColor;
|
}
|
|
m_svg.createCircle(curveElementName, attr, style);
|
};
|
//绘制文字 textAnchor 文字对齐 start | middle | end
|
var drawTextByQH = function (curveElementName, text, point, textSize, textColor, offsetPixelX, offsetPixelY, textAnchor) {
|
if (!text) {
|
return;
|
}
|
if (!point) {
|
return;
|
}
|
|
var xPixel = getPixelValueQ(point.X);
|
var yPixel = getPixelValueH(point.Y);
|
if (offsetPixelX != null) {
|
xPixel += offsetPixelX;
|
}
|
if (offsetPixelY != null) {
|
yPixel -= offsetPixelY;
|
}
|
|
var textStyle = "stroke-width:1px; "; //font-weight:bold; fill-opacity:0.9;
|
if (textColor != null) {
|
textStyle += " fill:" + textColor + ";";
|
} else {
|
textStyle += " fill:#000000;";
|
}
|
if (textSize != null) {
|
textStyle += " font-size:" + textSize + "px;"
|
} else {
|
textStyle += " font-size:12px;";
|
}
|
if (textAnchor != null) {
|
textStyle += " text-anchor:" + textAnchor + ";";
|
}
|
if (curveElementName == null) {
|
return m_svg.createText({
|
"opacity": 0.5,
|
"y": yPixel,
|
"x": xPixel
|
}, textStyle, text);
|
} else {
|
return m_svg.createText({
|
"id": curveElementName,
|
"opacity": 0.5,
|
"y": yPixel,
|
"x": xPixel
|
}, textStyle, text);
|
}
|
};
|
//绘制设计点
|
var drawDesignPoint = function () {
|
if (m_chartObject.DesignPoint4StdUnit == null)
|
return;
|
var defaultDp = m_chartObject.DesignPoint4StdUnit;
|
|
var DispStyleType = m_displayStyle.DesignPointDispType;
|
if (DispStyleType == 2) { //倒三角
|
|
var xPixel = getPixelValueQ(defaultDp.X);
|
var yPixel = getPixelValueH(defaultDp.Y);
|
|
var xTri = m_chartSize.DiagramWidth / 20;
|
var yTri = xTri / 2;
|
var style = {
|
"stroke-width": "2px",
|
"stroke": "red",
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 18
|
};
|
//if (curveWidth != null) {
|
// style["stroke-width"] = curveWidth;
|
//}
|
//if (curveColor != null) {
|
// style["stroke"] = curveColor;
|
//}
|
|
|
var temp = "M x1 y1 L x2 y2";
|
var pathValue = temp.replace("x1", xPixel).replace("y1", yPixel).replace("x2", (xPixel - xTri)).replace("y2", yPixel);
|
m_svg.createPath("DesignPointWater1", pathValue, {
|
//"class": "DesignPoint1",
|
"tag": "DesignPoint1"
|
}, style);
|
pathValue = temp.replace("x1", xPixel).replace("y1", yPixel).replace("x2", xPixel).replace("y2", (yPixel + yTri));
|
m_svg.createPath("DesignPointWater2", pathValue, {
|
//"class": "DesignPoint1",
|
"tag": "DesignPoint1"
|
}, style);
|
pathValue = temp.replace("x1", xPixel - xTri).replace("y1", yPixel).replace("x2", xPixel).replace("y2", (yPixel + yTri));
|
m_svg.createPath("DesignPointWater3", pathValue, {
|
//"class": "DesignPoint1",
|
"tag": "DesignPoint1"
|
}, style);
|
|
|
//m_svg.createPath(objName, pathValue.join(''), {
|
// "id": objName
|
//}, style);
|
|
pathValue = temp.replace("x1", xPixel - xTri / 3).replace("y1", yPixel).replace("x2", xPixel).replace("y2", (yPixel + yTri / 3));
|
m_svg.createPath("DesignPointWater4", pathValue, {
|
//"class": "DesignPoint1",
|
"tag": "DesignPoint1"
|
}, style);
|
|
pathValue = temp.replace("x1", xPixel - xTri * 2 / 3).replace("y1", yPixel).replace("x2", xPixel).replace("y2", (yPixel + yTri * 2 / 3));
|
m_svg.createPath("DesignPointWater5", pathValue, {
|
//"class": "DesignPoint1",
|
"tag": "DesignPoint1"
|
}, style);
|
|
} else { //十字线
|
var x = defaultDp.X;
|
var y = defaultDp.Y;
|
var point1 = { X: x, Y: y * m_designPointTolerance[2] };
|
var point2 = { X: x, Y: y * m_designPointTolerance[3] };
|
createLineQH("DesignPointWater1", point1, point2, 3, "red", "DesignPoint1");
|
|
point1 = { X: x * m_designPointTolerance[0], Y: y };
|
point2 = { X: x * m_designPointTolerance[1], Y: y };
|
createLineQH("DesignPointWater2", point1, point2, 3, "red", "DesignPoint1");
|
}
|
|
};
|
//刷新区域点位置
|
var refreshRegionPtPosi = function (grp_pt, tag) {
|
//
|
if (tag == null)
|
return;
|
|
// console.log(m_chartObject, grp_pt, tag);
|
if (tag == "AllowMaxPointQ" && m_chartPointPara != null) {
|
m_chartPointPara.AllowMaxPoint = grp_pt;
|
calcAllowRegionCurve();
|
}
|
if (tag == "AllowMinPointQ" && m_chartPointPara != null) {
|
m_chartPointPara.AllowMinPoint = grp_pt;
|
calcAllowRegionCurve();
|
}
|
if (tag == "PerferMinPointQ" && m_chartPointPara != null) {
|
m_chartPointPara.PerferMinPoint = grp_pt;
|
calcPerferRegionCurve();
|
}
|
if (tag == "PerferMaxPointQ" && m_chartPointPara != null) {
|
m_chartPointPara.PerferMaxPoint = grp_pt;
|
calcPerferRegionCurve();
|
}
|
};
|
//绘制 允许区域
|
var calcAllowRegionCurve = function () {
|
|
$("#RegionBlodCurveQH_Allow").remove();
|
$("#RegionBlodCurveQP_Allow").remove();
|
$("#RegionBlodCurveQE_Allow").remove();
|
$("#RegionBlodCurveNPSH_Allow").remove();
|
|
if (m_chartPointPara == null)
|
return;
|
|
if (m_wrkCurveGrp == null)
|
return;
|
if (m_wrkCurveGrp.PixelQH == null)
|
return;
|
if (m_chartPointPara.AllowMaxPoint == null)
|
return;
|
if (m_chartPointPara.AllowMinPoint == null)
|
return;
|
|
if (!m_chartPointPara.AllowRegionInChartVisible) {
|
return;
|
}
|
if (m_chartPointPara.AllowRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) { //加粗显示
|
|
var pt_num = 11;
|
var space = (m_chartPointPara.AllowMaxPoint.Q - m_chartPointPara.AllowMinPoint.Q) / (pt_num - 1);
|
|
var pixelPoints_QH = new Array();
|
var pixelPoints_QE = new Array();
|
var pixelPoints_QP = new Array();
|
|
|
for (var i = 0; i < pt_num; i++) {
|
var q = m_chartPointPara.AllowMinPoint.Q + i * space;
|
var xPixel = getPixelValueQ(q);
|
|
var head_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQH, xPixel);
|
if (head_pixel_pt != null)
|
pixelPoints_QH.push(head_pixel_pt);
|
if (m_isDispCurveQE) {
|
var eta_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQE, xPixel);
|
if (eta_pixel_pt != null)
|
pixelPoints_QE.push(eta_pixel_pt);
|
}
|
|
var power_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQP, xPixel);
|
if (power_pixel_pt != null)
|
pixelPoints_QP.push(power_pixel_pt);
|
|
|
//var npsh_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelNPSH, xPixel);
|
//if (npsh_pixel_pt != null)
|
// pixelPoints_NPSH.push(npsh_pixel_pt);
|
}
|
|
var pixelPoints_NPSH = new Array();
|
if (m_isDispNpsh && m_wrkCurveGrp.PixelNPSH && m_wrkCurveGrp.PixelNPSH.length > 3) {
|
var min_q = Math.max(getPixelValueQ(m_chartPointPara.AllowMinPoint.Q), m_wrkCurveGrp.PixelNPSH[0].Point0.X);
|
var max_q = Math.min(getPixelValueQ(m_chartPointPara.AllowMaxPoint.Q), m_wrkCurveGrp.PixelNPSH[m_wrkCurveGrp.PixelNPSH.length - 1].Point3.X);
|
//console.log("PixelNPSH", m_wrkCurveGrp.PixelNPSH[0] , getPixelValueQ(m_chartPointPara.AllowMinPoint.Q), min_q);
|
space = (max_q - min_q) / (pt_num - 1);
|
for (var i = 0; i < pt_num; i++) {
|
var xPixel = min_q + i * space;
|
|
var npsh_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelNPSH, xPixel);
|
if (npsh_pixel_pt != null)
|
pixelPoints_NPSH.push(npsh_pixel_pt);
|
else {
|
if (i == 0)
|
pixelPoints_NPSH.push(m_wrkCurveGrp.PixelNPSH[0].Point0);
|
//else
|
// console.log(xPixel);
|
}
|
}
|
}
|
|
//console.log(m_wrkCurveGrp,m_chartPointPara);
|
createCurveQH_pixel("RegionBlodCurveQH_Allow", pixelPoints_QH, m_displayStyle.BlodRegionCurveWidth);
|
createCurveQE_pixel("RegionBlodCurveQE_Allow", pixelPoints_QE, m_displayStyle.BlodRegionCurveWidth);
|
createCurveQP_pixel("RegionBlodCurveQP_Allow", pixelPoints_QP, m_displayStyle.BlodRegionCurveWidth);
|
createCurveNPSH_pixel("RegionBlodCurveNPSH_Allow", pixelPoints_NPSH, m_displayStyle.BlodRegionCurveWidth);
|
} else if (m_chartPointPara.AllowRegionDispStyle == ConstParas.ChartRegionDispStyle.Strip) { // 条带
|
$("#ChartRegionAllowRegionStrip").remove();
|
var xPixel_min_q = getPixelValueQ(m_chartPointPara.AllowMinPoint.Q);
|
var xPixel_max_q = getPixelValueQ(m_chartPointPara.AllowMaxPoint.Q);
|
|
var attr = {
|
x: xPixel_min_q,
|
y: m_chartSize.DiagramTop,
|
width: xPixel_max_q - xPixel_min_q,
|
height: m_chartSize.DiagramHeight
|
}
|
var style = {
|
"stroke-width": "1",
|
"stroke": "none",
|
"fill": "ForestGreen",
|
"stroke-opacity": '0.1',
|
"fill-opacity": "0.3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": -1
|
};
|
m_svg.createRect(attr, style, "ChartRegionAllowRegionStrip");
|
}
|
};
|
//绘制 最优区域
|
var calcPerferRegionCurve = function () {
|
if (m_chartPointPara == null)
|
return;
|
if (m_wrkCurveGrp == null)
|
return;
|
if (m_wrkCurveGrp.PixelQH == null)
|
return;
|
if (m_chartPointPara.PerferMaxPoint == null)
|
return;
|
if (m_chartPointPara.PerferMinPoint == null)
|
return;
|
|
if (!m_chartPointPara.PerferRegionInChartVisible) {
|
return;
|
}
|
if (m_chartPointPara.PerferRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) { //加粗显示
|
|
var pt_num = 11;
|
var space = (m_chartPointPara.PerferMaxPoint.Q - m_chartPointPara.PerferMinPoint.Q) / (pt_num - 1);
|
|
var pixelPoints_QH = new Array();
|
var pixelPoints_QE = new Array();
|
var pixelPoints_QP = new Array();
|
var pixelPoints_NPSH = new Array();
|
|
for (var i = 0; i < pt_num; i++) {
|
var q = m_chartPointPara.PerferMinPoint.Q + i * space;
|
var xPixel = getPixelValueQ(q);
|
|
var head_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQH, xPixel);
|
if (head_pixel_pt != null)
|
pixelPoints_QH.push(head_pixel_pt);
|
if (m_isDispCurveQE) {
|
var eta_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQE, xPixel);
|
if (eta_pixel_pt != null)
|
pixelPoints_QE.push(eta_pixel_pt);
|
}
|
|
var power_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQP, xPixel);
|
if (power_pixel_pt != null)
|
pixelPoints_QP.push(power_pixel_pt);
|
}
|
|
var pixelPoints_NPSH = new Array();
|
if (m_isDispNpsh && m_wrkCurveGrp.PixelNPSH && m_wrkCurveGrp.PixelNPSH.length > 3) {
|
var min_q = Math.max(getPixelValueQ(m_chartPointPara.PerferMinPoint.Q), m_wrkCurveGrp.PixelNPSH[0].Point0.X);
|
var max_q = Math.min(getPixelValueQ(m_chartPointPara.PerferMaxPoint.Q), m_wrkCurveGrp.PixelNPSH[m_wrkCurveGrp.PixelNPSH.length - 1].Point3.X);
|
//console.log("PixelNPSH", m_wrkCurveGrp.PixelNPSH[0] , getPixelValueQ(m_chartPointPara.AllowMinPoint.Q), min_q);
|
space = (max_q - min_q) / (pt_num - 1);
|
for (var i = 0; i < pt_num; i++) {
|
var xPixel = min_q + i * space;
|
|
var npsh_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelNPSH, xPixel);
|
if (npsh_pixel_pt != null)
|
pixelPoints_NPSH.push(npsh_pixel_pt);
|
else {
|
if (i == 0)
|
pixelPoints_NPSH.push(m_wrkCurveGrp.PixelNPSH[0].Point0);
|
//else
|
// console.log(xPixel);
|
}
|
}
|
}
|
|
$("#RegionBlodCurveQH_Perfer").remove();
|
$("#RegionBlodCurveQP_Perfer").remove();
|
$("#RegionBlodCurveQE_Perfer").remove();
|
$("#RegionBlodCurveNPSH_Perfer").remove();
|
|
createCurveQH_pixel("RegionBlodCurveQH_Perfer", pixelPoints_QH, m_displayStyle.BlodRegionCurveWidth);
|
createCurveQE_pixel("RegionBlodCurveQE_Perfer", pixelPoints_QE, m_displayStyle.BlodRegionCurveWidth);
|
createCurveQP_pixel("RegionBlodCurveQP_Perfer", pixelPoints_QP, m_displayStyle.BlodRegionCurveWidth);
|
createCurveNPSH_pixel("RegionBlodCurveNPSH_Perfer", pixelPoints_NPSH, m_displayStyle.BlodRegionCurveWidth);
|
} else if (m_chartPointPara.PerferRegionDispStyle == ConstParas.ChartRegionDispStyle.Strip) { // 条带
|
$("#ChartRegionPerferRegionStrip").remove();
|
$("#ChartRegionPerferRegionText").remove();
|
|
var xPixel_min_q = getPixelValueQ(m_chartPointPara.PerferMinPoint.Q);
|
var xPixel_max_q = getPixelValueQ(m_chartPointPara.PerferMaxPoint.Q);
|
|
var attr = {
|
x: xPixel_min_q,
|
y: m_chartSize.DiagramTop,
|
width: xPixel_max_q - xPixel_min_q,
|
height: m_chartSize.DiagramHeight
|
}
|
var style = {
|
"stroke-width": "1",
|
"stroke": "none",
|
"fill": "ForestGreen",
|
"stroke-opacity": '0.1',
|
"fill-opacity": "0.3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": -1
|
};
|
m_svg.createRect(attr, style, "ChartRegionPerferRegionStrip");
|
|
|
|
|
var note_content = "最优区域";
|
if(m_localizationType != 0){
|
note_content = "Perfer Region";
|
}
|
var note_posi_x = (xPixel_max_q + xPixel_min_q) * 0.5;
|
var note_posi_y = m_chartSize.DiagramTop + 15;
|
var note_attr = {
|
id:"ChartRegionPerferRegionText",
|
"opacity": 1,
|
"x": note_posi_x,
|
"y": note_posi_y,
|
"text-anchor": "middle"
|
};
|
//console.log(note_posi_x,note_posi_y)
|
|
var note_style = "font-size:9px;fill-opacity:1;fill:green;font-weight:bold;"; //
|
m_svg.createText(note_attr, note_style, note_content, 10, null, null);
|
|
}
|
};
|
//绘制曲线(流量效率)
|
var createCurveQE = function (curveElementName, points, curveWidth, curveColor, curveIsDisp, curveDashType) {
|
if (points == null) {
|
return null;
|
}
|
if (curveElementName == null) {
|
return null;
|
}
|
var point_num = points.length;
|
if(point_num<3)
|
return;
|
if (curveElementName == "RegionBlodCurveQE_Allow") {
|
|
}
|
else if (curveElementName == "PerferBlodCurveQE_Allow") {
|
|
}
|
else {
|
//console.log(points[0].X, points[point_num - 1].X * 0.01)
|
if (points[0].X < (points[point_num - 1].X * 0.01) && points[0].Y< 10) { //强制归零
|
points[0].X = 0;
|
points[0].Y = 0;
|
}
|
}
|
|
var pixelPoints = new Array();
|
for (var v = 0; v < point_num; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueE(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
|
return createCurveQE_pixel(curveElementName, pixelPoints, curveWidth, curveColor, curveIsDisp, curveDashType);
|
};
|
//绘制曲线(流量效率) : 像素点
|
var createCurveQE_pixel = function (curveElementName, pixelPoints, curveWidth, curveColor, isDisp, curveDashType) {
|
if (pixelPoints == null || pixelPoints.length < 3) {
|
return null;
|
}
|
if (curveElementName == null) {
|
return null;
|
}
|
var pathValue = transBezierCurveToPath(pixelPoints);
|
if (pathValue == null || pathValue == undefined)
|
return null;
|
//有时会报错,加上这个就没事 tangxu 20151122
|
if (pathValue.toString().indexOf("M ,NaN, ,NaN") == 0) {
|
return null;
|
};
|
var style = {
|
"stroke-width": "2px",
|
"stroke": m_displayStyle.ColorE,
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 7
|
};
|
if (curveWidth != null) {
|
style["stroke-width"] = curveWidth;
|
}
|
if (curveColor != null) {
|
style["stroke"] = curveColor;
|
}
|
|
if (curveDashType != null) {
|
style["stroke-dasharray"] = curveDashType; //'10, 10';//'10, 10, 5, 5'
|
}
|
|
m_svg.createPath(curveElementName, pathValue.join(''), {
|
"id": curveElementName
|
}, style);
|
if (isDisp != null && !isDisp) {
|
$("#" + curveElementName).hide();
|
}
|
return pixelPoints;
|
};
|
//绘制曲线(流量功率)
|
var createCurveQP = function (curveElementName, points, curveWidth, curveColor, curveIsDisp, curveDashType) {
|
if (points == null) {
|
return null;
|
}
|
if (curveElementName == null) {
|
return null;
|
}
|
|
var pixelPoints = new Array();
|
for (var v = 0; v < points.length; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueP(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
return createCurveQP_pixel(curveElementName, pixelPoints, curveWidth, curveColor, curveIsDisp, curveDashType);
|
};
|
//绘制曲线(流量功率) : 像素点
|
var createCurveQP_pixel = function (curveElementName, pixelPoints, curveWidth, curveColor, curveIsDisp, curveDashType) {
|
if (pixelPoints == null || pixelPoints.length < 3) {
|
return null;
|
}
|
if (curveElementName == null) {
|
return null;
|
}
|
var pathValue = transBezierCurveToPath(pixelPoints);
|
if (pathValue == null || pathValue == undefined)
|
return null;
|
//有时会报错,加上这个就没事 tangxu 20151122
|
if (pathValue.toString().indexOf("M ,NaN, ,NaN") == 0) {
|
return null;
|
};
|
var style = {
|
"stroke-width": "2px",
|
"stroke": m_displayStyle.ColorP,
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 7
|
};
|
if (curveWidth != null) {
|
style["stroke-width"] = curveWidth;
|
}
|
if (curveColor != null) {
|
style["stroke"] = curveColor;
|
}
|
|
if (curveDashType != null) {
|
style["stroke-dasharray"] = curveDashType; //'10, 10';//'10, 10, 5, 5'
|
}
|
|
m_svg.createPath(curveElementName, pathValue.join(''), {
|
"id": curveElementName
|
}, style);
|
if (curveIsDisp != null && !curveIsDisp) {
|
$("#" + curveElementName).hide();
|
}
|
|
return pixelPoints;
|
};
|
//绘制曲线(流量汽蚀)
|
var createCurveNPSH = function (curveElementName, points, curveWidth, curveColor, curveIsDisp, curveDashType) {
|
if (points == null || m_coordinatePara.SpaceNPSH < 0.02) {
|
return null;
|
}
|
if (curveElementName == null) {
|
return null;
|
}
|
|
var pixelPoints = new Array();
|
for (var v = 0; v < points.length; v++) {
|
var pt = points[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueNPSH(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
|
return createCurveNPSH_pixel(curveElementName, pixelPoints, curveWidth, curveColor, curveIsDisp, curveDashType);
|
};
|
//绘制曲线(流量功率) : 像素点
|
var createCurveNPSH_pixel = function (curveElementName, pixelPoints, curveWidth, curveColor, curveIsDisp, curveDashType) {
|
if (pixelPoints == null || pixelPoints.length < 3) {
|
return null;
|
}
|
if (curveElementName == null) {
|
return null;
|
}
|
var pathValue = transBezierCurveToPath(pixelPoints);
|
if (pathValue == null || pathValue == undefined)
|
return;
|
//有时会报错,加上这个就没事 tangxu 20151122
|
if (pathValue.toString().indexOf("M ,NaN, ,NaN") == 0) {
|
return;
|
};
|
var style = {
|
"stroke-width": "2px",
|
"stroke": m_displayStyle.ColorNPSH,
|
"fill": "none",
|
"fill-opacity": "0.5",
|
//"stroke-dasharray":"5 3",
|
"shape-rendering": "geometricPrecision",
|
"zIndex:": 7
|
};
|
if (curveWidth != null) {
|
style["stroke-width"] = curveWidth;
|
}
|
if (curveColor != null) {
|
style["stroke"] = curveColor;
|
}
|
if (curveDashType != null) {
|
style["stroke-dasharray"] = curveDashType; //'10, 10';//'10, 10, 5, 5'
|
}
|
m_svg.createPath(curveElementName, pathValue.join(''), {
|
"id": curveElementName
|
}, style);
|
if (curveIsDisp != null && !curveIsDisp) {
|
$("#" + curveElementName).hide();
|
}
|
};
|
//清理
|
var ClearCurveElement = function () {
|
$("#SimJieZhiCurveQH").remove();
|
$("#SimJieZhiCurveQE").remove();
|
$("#SimJieZhiCurveQP").remove();
|
$("#SimJieZhiCurveNPSH").remove();
|
|
$("#SimWaterCurveQH").remove();
|
$("#SimWaterCurveQE").remove();
|
$("#SimWaterCurveQP").remove();
|
$("#SimWaterCurveNPSH").remove();
|
|
$("#MaxWaterCurveQH").remove();
|
$("#MaxWaterCurveQE").remove();
|
$("#MaxWaterCurveQP").remove();
|
$("#MaxWaterCurveNPSH").remove();
|
|
$("#MaxD2Text").remove();
|
$("#WrkD2Text").remove();
|
|
$("#RegionBlodCurveQH_Allow").remove();
|
$("#RegionBlodCurveQP_Allow").remove();
|
$("#RegionBlodCurveQE_Allow").remove();
|
$("#RegionBlodCurveNPSH_Allow").remove();
|
|
$("#PerferBlodCurveQH_Allow").remove();
|
$("#PerferBlodCurveQP_Allow").remove();
|
$("#PerferBlodCurveQE_Allow").remove();
|
$("#PerferBlodCurveNPSH_Allow").remove();
|
|
$("#DesignPointWater1").remove();
|
$("#DesignPointWater2").remove();
|
|
};
|
|
//初始化工作曲线
|
var intitalWrkCurveInfo = function () {
|
|
m_wrkCurveGrp = {};
|
//console.log(m_chartObject)
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
m_wrkCurveGrp = {
|
RealQH: m_chartObject.SimJieZhiCurveQH,
|
RealQE: m_chartObject.SimJieZhiCurveQE,
|
RealQP: m_chartObject.SimJieZhiCurveQP,
|
RealNPSH: m_chartObject.SimJieZhiCurveNPSH,
|
}
|
} else if (m_chartObject.SimWaterCurveQH != null) {
|
m_wrkCurveGrp = {
|
RealQH: m_chartObject.SimWaterCurveQH,
|
RealQE: m_chartObject.SimWaterCurveQE,
|
RealQP: m_chartObject.SimWaterCurveQP,
|
RealNPSH: m_chartObject.SimWaterCurveNPSH,
|
}
|
} else if (m_chartObject.MaxWaterCurveQH != null) {
|
m_wrkCurveGrp = {
|
RealQH: m_chartObject.MaxWaterCurveQH,
|
RealQE: m_chartObject.MaxWaterCurveQE,
|
RealQP: m_chartObject.MaxWaterCurveQP,
|
RealNPSH: m_chartObject.MaxWaterCurveNPSH,
|
}
|
} else {
|
return null;
|
}
|
//
|
|
var pixelPoints = new Array();
|
if (m_wrkCurveGrp.RealQH != null) {
|
for (var v = 0; v < m_wrkCurveGrp.RealQH.length; v++) {
|
var pt = m_wrkCurveGrp.RealQH[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueH(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
}
|
|
m_wrkCurveGrp.PixelQH = transBezierCurveModel(pixelPoints);
|
|
|
pixelPoints = new Array();
|
if (m_wrkCurveGrp.RealQE != null) {
|
for (var v = 0; v < m_wrkCurveGrp.RealQE.length; v++) {
|
var pt = m_wrkCurveGrp.RealQE[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueE(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
}
|
|
m_wrkCurveGrp.PixelQE = transBezierCurveModel(pixelPoints);
|
|
|
pixelPoints = new Array();
|
if (m_wrkCurveGrp.RealQP != null) {
|
for (var v = 0; v < m_wrkCurveGrp.RealQP.length; v++) {
|
var pt = m_wrkCurveGrp.RealQP[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueP(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
}
|
m_wrkCurveGrp.PixelQP = transBezierCurveModel(pixelPoints);
|
|
|
|
if (m_wrkCurveGrp.RealNPSH != null && m_wrkCurveGrp.RealNPSH.length > 3) {
|
pixelPoints = new Array();
|
for (var v = 0; v < m_wrkCurveGrp.RealNPSH.length; v++) {
|
var pt = m_wrkCurveGrp.RealNPSH[v];
|
var x = getPixelValueQ(pt.X);
|
var y = getPixelValueNPSH(pt.Y);
|
pixelPoints.push({ "X": x, "Y": y });
|
}
|
m_wrkCurveGrp.PixelNPSH = transBezierCurveModel(pixelPoints);
|
}
|
|
};
|
|
//绘制 子切割线
|
var drawSubSimuCurveList = function () {
|
//
|
if (m_chartObject.SpectrumList != null) {
|
for (var i = 0; i < m_chartObject.SpectrumList.length; i++) {
|
var subSpectrumCurve = m_chartObject.SpectrumList[i];
|
|
createCurveQH("SpectrumList" + i, subSpectrumCurve.QH, 1);
|
if (m_displayStyle.IsDispCurveLabel) {
|
if (subSpectrumCurve.CurveName == null || subSpectrumCurve.CurveName == "") {
|
//if (m_d2IsMeter) {
|
// drawTextByQH("SpectrumListText" + i, subSpectrumCurve.CurvePara + "mm", subSpectrumCurve.QH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5, "start");
|
//}
|
//else {
|
// drawTextByQH("SpectrumListText" + i, (subSpectrumCurve.CurvePara / 25.4).toFixed(2) + "\"", subSpectrumCurve.QH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5, "start");
|
//}
|
drawTextByQH("SpectrumListText" + i, UnitHelper.getDispValueLength(subSpectrumCurve.CurvePara, m_d2IsMeter, true), subSpectrumCurve.QH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5, "start");
|
|
} else {
|
drawTextByQH("SpectrumListText" + i, subSpectrumCurve.CurveName, subSpectrumCurve.QH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5, "start");
|
}
|
}
|
}
|
}
|
};
|
//绘制等效线
|
var drawEquepEtaCurveList = function () {
|
//
|
if (m_chartObject.EqualParaCurvesE != null) {
|
for (var i = 0; i < m_chartObject.EqualParaCurvesE.length; i++) {
|
var points = m_chartObject.EqualParaCurvesE[i].PointInfo;
|
if (points.length >= 4) { //曲线
|
createCurveQH("EqualParaCurvesE" + i, points, 1, m_displayStyle.ColorEqualParaCurvesE);
|
drawTextByQH("EqualParaCurvesEText" + i, m_chartObject.EqualParaCurvesE[i].CurvePara + "%", points[0], m_displayStyle.EqualCurveSize, m_displayStyle.ColorEqualParaCurvesE, 2, 6, "middle");
|
} else if (points.length == 2 || points.length == 3) { //直线
|
createLineQH("EqualParaCurvesE" + i, points[0], points[1], 1, m_displayStyle.ColorEqualParaCurvesE);
|
drawTextByQH("EqualParaCurvesEText" + i, m_chartObject.EqualParaCurvesE[i].CurvePara + "%", points[0], m_displayStyle.EqualCurveSize, m_displayStyle.ColorEqualParaCurvesE, 2, 6, "middle");
|
} else if (points.length == 1) {
|
createPointQH("EqualParaCurvesE" + i, points[0], 3, m_displayStyle.ColorEqualParaCurvesE);
|
drawTextByQH("EqualParaCurvesEText" + i, m_chartObject.EqualParaCurvesE[i].CurvePara + "%", points[0], m_displayStyle.EqualCurveSize, m_displayStyle.ColorEqualParaCurvesE, 2, 6, "middle");
|
}
|
}
|
}
|
};
|
//切割,全部
|
var drawAllCurve_Cut_Full = function () {
|
var maxCurveWidth = 2;
|
if (m_chartObject.SimWaterCurveQH != null) {
|
maxCurveWidth = 1;
|
}
|
//
|
var curveMaxPathQH = createCurveQH("MaxWaterCurveQH", m_chartObject.MaxWaterCurveQH, maxCurveWidth);
|
//
|
if (m_pumpInfo.MaxD2 != null && m_pumpInfo.MaxD2 > 1 && m_displayStyle.IsDispCurveLabel) {
|
//叶轮直径
|
drawTextByQH("MaxD2Text", UnitHelper.getDispValueLength(m_pumpInfo.MaxD2, m_d2IsMeter, true),
|
m_chartObject.MaxWaterCurveQH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5);
|
}
|
|
|
if (m_isDispCurveQE) {
|
createCurveQE("MaxWaterCurveQE", m_chartObject.MaxWaterCurveQE, maxCurveWidth);
|
}
|
|
|
createCurveQP("MaxWaterCurveQP", m_chartObject.MaxWaterCurveQP, maxCurveWidth);
|
|
createCurveNPSH("MaxWaterCurveNPSH", m_chartObject.MaxWaterCurveNPSH, maxCurveWidth);
|
|
//
|
createCurveQH("MinWaterCurveQH", m_chartObject.MinWaterCurveQH, 1);
|
//
|
if (m_chartObject.MinWaterCurveQH != null && m_displayStyle.IsDispCurveLabel && m_pumpInfo.MinD2) {
|
//叶轮直径
|
drawTextByQH("MinD2Text", UnitHelper.getDispValueLength(m_pumpInfo.MinD2, m_d2IsMeter, true),
|
m_chartObject.MinWaterCurveQH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5);
|
}
|
|
//暂时不显示
|
//createCurveQE("MinWaterCurveQE", m_chartObject.MinWaterCurveQE, 1);
|
//createCurveQP("MinWaterCurveQP", m_chartObject.MinWaterCurveQP, 1);
|
//createCurveNPSH("MinWaterCurveNPSH", m_chartObject.MinWaterCurveNPSH, 1);
|
|
var simuWaterCurveWidth = 2;
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
simuWaterCurveWidth = 1;
|
}
|
|
var curveSimuPathQH = createCurveQH("SimWaterCurveQH", m_chartObject.SimWaterCurveQH, simuWaterCurveWidth);
|
if (m_chartObject.SimWaterCurveQH != null) { //叶轮直径
|
if (Math.abs(m_pumpInfo.WrkD2 - m_pumpInfo.MaxD2) > 5) {
|
drawTextByQH("WrkD2Text", UnitHelper.getDispValueLength(m_pumpInfo.WrkD2, m_d2IsMeter, true), m_chartObject.SimWaterCurveQH[0], 12, m_displayStyle.ColorCurveLabel, 10, 5);
|
}
|
}
|
|
if (m_isDispCurveQE)
|
createCurveQE("SimWaterCurveQE", m_chartObject.SimWaterCurveQE, simuWaterCurveWidth);
|
|
createCurveQP("SimWaterCurveQP", m_chartObject.SimWaterCurveQP, simuWaterCurveWidth);
|
createCurveNPSH("SimWaterCurveNPSH", m_chartObject.SimWaterCurveNPSH, simuWaterCurveWidth);
|
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
//$("#SimJieZhiCurveQH").remove();
|
//$("#SimJieZhiCurveQE").remove();
|
//$("#SimJieZhiCurveQP").remove();
|
createCurveQH("SimJieZhiCurveQH", m_chartObject.SimJieZhiCurveQH, 1, null, true, "10, 10");
|
if (m_isDispCurveQE)
|
createCurveQE("SimJieZhiCurveQE", m_chartObject.SimJieZhiCurveQE, 1, null, true, "10, 10");
|
createCurveQP("SimJieZhiCurveQP", m_chartObject.SimJieZhiCurveQP, 1, null, true, "10, 10");
|
}
|
//初始化工作曲线
|
intitalWrkCurveInfo();
|
|
//绘制区域
|
calcAllowRegionCurve();
|
calcPerferRegionCurve();
|
|
//绘制型谱
|
//createSpectrumShape(m_chartObject.SpectrumShape);
|
};
|
//切割,工作曲线
|
var drawAllCurve_Cut_Wrk = function () {
|
// console.log(m_chartObject,m_chartPointPara)
|
var fullCurveWidth = 2;
|
if (m_chartPointPara.AllowRegionInChartVisible == true || m_chartPointPara.AllowRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
fullCurveWidth = 1;
|
}
|
if (m_chartPointPara.PerferRegionInChartVisible == true || m_chartPointPara.PerferRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
fullCurveWidth = 1;
|
}
|
|
if (m_chartObject.SimWaterCurveQH != null) {
|
|
var curveSimuPathQH = createCurveQH("SimWaterCurveQH", m_chartObject.SimWaterCurveQH, fullCurveWidth);
|
|
//叶轮直径
|
if (m_pumpInfo.WrkD2 != null && m_pumpInfo.WrkD2 > 1 && m_displayStyle.IsDispCurveLabel) {
|
drawTextByQH("WrkD2Text", UnitHelper.getDispValueLength(m_pumpInfo.WrkD2, m_d2IsMeter, true), m_chartObject.SimWaterCurveQH[0], 12, m_displayStyle.ColorCurveLabel, 10, 5);
|
}
|
|
|
if (m_isDispCurveQE)
|
createCurveQE("SimWaterCurveQE", m_chartObject.SimWaterCurveQE, fullCurveWidth);
|
|
createCurveQP("SimWaterCurveQP", m_chartObject.SimWaterCurveQP, fullCurveWidth);
|
|
createCurveNPSH("SimWaterCurveNPSH", m_chartObject.SimWaterCurveNPSH, fullCurveWidth);
|
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
createCurveQH("SimJieZhiCurveQH", m_chartObject.SimJieZhiCurveQH, 1, null, true, "10, 10");
|
if (m_isDispCurveQE)
|
createCurveQE("SimJieZhiCurveQE", m_chartObject.SimJieZhiCurveQE, 1, null, true, "10, 10");
|
createCurveQP("SimJieZhiCurveQP", m_chartObject.SimJieZhiCurveQP, 1, null, true, "10, 10");
|
}
|
} else {
|
//
|
var curveMaxPathQH = createCurveQH("MaxWaterCurveQH", m_chartObject.MaxWaterCurveQH, fullCurveWidth);
|
//
|
if (m_pumpInfo.WrkD2 != null && m_pumpInfo.WrkD2 > 1 && m_displayStyle.IsDispCurveLabel) {
|
//叶轮直径
|
drawTextByQH("MaxD2Text", UnitHelper.getDispValueLength(m_pumpInfo.WrkD2, m_d2IsMeter, true),
|
m_chartObject.MaxWaterCurveQH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5);
|
}
|
|
if (m_isDispCurveQE) {
|
createCurveQE("MaxWaterCurveQE", m_chartObject.MaxWaterCurveQE, fullCurveWidth);
|
}
|
|
createCurveQP("MaxWaterCurveQP", m_chartObject.MaxWaterCurveQP, fullCurveWidth);
|
|
createCurveNPSH("MaxWaterCurveNPSH", m_chartObject.MaxWaterCurveNPSH, fullCurveWidth);
|
}
|
//初始化工作曲线
|
intitalWrkCurveInfo();
|
|
calcAllowRegionCurve();
|
calcPerferRegionCurve();
|
};
|
//变频,全部曲线
|
var drawAllCurve_Speed_Full = function () {
|
var fullCurveWidth = 2;
|
if (m_chartPointPara.AllowRegionInChartVisible == true || m_chartPointPara.AllowRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
fullCurveWidth = 1;
|
}
|
if (m_chartPointPara.PerferRegionInChartVisible == true || m_chartPointPara.PerferRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
fullCurveWidth = 1;
|
}
|
var curveMaxPathQH = createCurveQH("MaxWaterCurveQH", m_chartObject.MaxWaterCurveQH, fullCurveWidth);
|
if (m_pumpInfo.Ratedn != null && m_pumpInfo.Ratedn > 1 && m_displayStyle.IsDispCurveLabel) {
|
//转速
|
drawTextByQH("MaxSpeedText", m_pumpInfo.Ratedn + " rpm", m_chartObject.MaxWaterCurveQH[0], 12, "#28004D", 10, 5);
|
}
|
|
if (m_isDispCurveQE)
|
createCurveQE("MaxWaterCurveQE", m_chartObject.MaxWaterCurveQE, fullCurveWidth);
|
|
createCurveQP("MaxWaterCurveQP", m_chartObject.MaxWaterCurveQP, fullCurveWidth);
|
createCurveNPSH("MaxWaterCurveNPSH", m_chartObject.MaxWaterCurveNPSH, fullCurveWidth);
|
|
//
|
createCurveQH("MinWaterCurveQH", m_chartObject.MinWaterCurveQH, 1);
|
if (m_chartType == 0 && m_chartObject.MinWaterCurveQH != null && m_displayStyle.IsDispCurveLabel) { //转速
|
drawTextByQH("MinSpeedText", m_pumpInfo.MinSpeed + " rpm", m_chartObject.MinWaterCurveQH[0], 12, "#28004D", 10, 5);
|
}
|
|
//暂时不显示
|
//m_isDispCurveQE
|
//createCurveQE("MinWaterCurveQE", m_chartObject.MinWaterCurveQE, 1);
|
//createCurveQP("MinWaterCurveQP", m_chartObject.MinWaterCurveQP, 1);
|
//createCurveNPSH("MinWaterCurveNPSH", m_chartObject.MinWaterCurveNPSH, 1);
|
|
|
var curveMaxPathQH = createCurveQH("SimWaterCurveQH", m_chartObject.SimWaterCurveQH, fullCurveWidth);
|
|
if (m_isDispCurveQE)
|
createCurveQE("SimWaterCurveQE", m_chartObject.SimWaterCurveQE, fullCurveWidth);
|
createCurveQP("SimWaterCurveQP", m_chartObject.SimWaterCurveQP, fullCurveWidth);
|
createCurveNPSH("SimWaterCurveNPSH", m_chartObject.SimWaterCurveNPSH, fullCurveWidth);
|
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
//$("#SimJieZhiCurveQH").remove();
|
//$("#SimJieZhiCurveQE").remove();
|
//$("#SimJieZhiCurveQP").remove();
|
|
createCurveQH("SimJieZhiCurveQH", m_chartObject.SimJieZhiCurveQH, 1, null, true, "10, 10");
|
if (m_isDispCurveQE)
|
createCurveQE("SimJieZhiCurveQE", m_chartObject.SimJieZhiCurveQE, 1, null, true, "10, 10");
|
createCurveQP("SimJieZhiCurveQP", m_chartObject.SimJieZhiCurveQP, 1, null, true, "10, 10");
|
}
|
//初始化工作曲线
|
intitalWrkCurveInfo();
|
|
calcAllowRegionCurve();
|
calcPerferRegionCurve();
|
};
|
//变频,工作曲线
|
var drawAllCurve_Speed_Wrk = function () {
|
var fullCurveWidth = 2;
|
if (m_chartPointPara.AllowRegionInChartVisible == true || m_chartPointPara.AllowRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
fullCurveWidth = 1;
|
}
|
if (m_chartPointPara.PerferRegionInChartVisible == true || m_chartPointPara.PerferRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
fullCurveWidth = 1;
|
}
|
// console.log(m_pumpInfo)
|
if (m_chartObject.SimWaterCurveQH != null) {
|
|
var curveSimuPathQH = createCurveQH("SimWaterCurveQH", m_chartObject.SimWaterCurveQH, fullCurveWidth);
|
|
|
if (m_pumpInfo.WrkSpeed != null && m_pumpInfo.WrkSpeed > 1 && m_displayStyle.IsDispCurveLabel) {
|
drawTextByQH("WrkD2Text", m_pumpInfo.WrkSpeed + " rpm", m_chartObject.SimWaterCurveQH[0], 12, m_displayStyle.ColorCurveLabel, 10, 5);
|
}
|
|
|
if (m_isDispCurveQE)
|
createCurveQE("SimWaterCurveQE", m_chartObject.SimWaterCurveQE, fullCurveWidth);
|
|
createCurveQP("SimWaterCurveQP", m_chartObject.SimWaterCurveQP, fullCurveWidth);
|
|
createCurveNPSH("SimWaterCurveNPSH", m_chartObject.SimWaterCurveNPSH, fullCurveWidth);
|
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
createCurveQH("SimJieZhiCurveQH", m_chartObject.SimJieZhiCurveQH, 1, null, true, "10, 10");
|
if (m_isDispCurveQE)
|
createCurveQE("SimJieZhiCurveQE", m_chartObject.SimJieZhiCurveQE, 1, null, true, "10, 10");
|
createCurveQP("SimJieZhiCurveQP", m_chartObject.SimJieZhiCurveQP, 1, null, true, "10, 10");
|
}
|
} else {
|
//
|
var curveMaxPathQH = createCurveQH("MaxWaterCurveQH", m_chartObject.MaxWaterCurveQH, fullCurveWidth);
|
// console.log(m_displayStyle,m_pumpInfo.Ratedn)
|
if (m_pumpInfo.Ratedn != null && m_pumpInfo.Ratedn > 1 && m_displayStyle.IsDispCurveLabel) {
|
|
drawTextByQH("MaxD2Text", m_pumpInfo.Ratedn + " rpm",
|
m_chartObject.MaxWaterCurveQH[0], m_displayStyle.FeatCurveSize, m_displayStyle.ColorCurveLabel, 6, 5);
|
}
|
|
if (m_isDispCurveQE) {
|
createCurveQE("MaxWaterCurveQE", m_chartObject.MaxWaterCurveQE, fullCurveWidth);
|
}
|
|
createCurveQP("MaxWaterCurveQP", m_chartObject.MaxWaterCurveQP, fullCurveWidth);
|
|
createCurveNPSH("MaxWaterCurveNPSH", m_chartObject.MaxWaterCurveNPSH, fullCurveWidth);
|
}
|
//初始化工作曲线
|
intitalWrkCurveInfo();
|
|
calcAllowRegionCurve();
|
calcPerferRegionCurve();
|
|
};
|
//
|
var drawAllCurve_BaoLuo = function () {
|
var maxCurveWidth = 2;
|
if (m_chartPointPara.AllowRegionInChartVisible == true || m_chartPointPara.AllowRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
maxCurveWidth = 1;
|
}
|
if (m_chartPointPara.PerferRegionInChartVisible == true || m_chartPointPara.PerferRegionDispStyle == ConstParas.ChartRegionDispStyle.Blod) {
|
maxCurveWidth = 1;
|
}
|
var curveMaxPathQH = createCurveQH("MaxWaterCurveQH", m_chartObject.MaxWaterCurveQH, maxCurveWidth);
|
|
if (m_isDispCurveQE)
|
createCurveQE("MaxWaterCurveQE", m_chartObject.MaxWaterCurveQE, maxCurveWidth);
|
|
createCurveQP("MaxWaterCurveQP", m_chartObject.MaxWaterCurveQP, maxCurveWidth);
|
createCurveNPSH("MaxWaterCurveNPSH", m_chartObject.MaxWaterCurveNPSH, maxCurveWidth);
|
|
|
var simuWaterCurveWidth = 2;
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
simuWaterCurveWidth = 1;
|
}
|
|
if (m_chartObject.SimJieZhiCurveQH != null) {
|
createCurveQH("SimJieZhiCurveQH", m_chartObject.SimJieZhiCurveQH, 1, null, true, "10, 10");
|
if (m_isDispCurveQE)
|
createCurveQE("SimJieZhiCurveQE", m_chartObject.SimJieZhiCurveQE, 1, null, true, "10, 10");
|
createCurveQP("SimJieZhiCurveQP", m_chartObject.SimJieZhiCurveQP, 1, null, true, "10, 10");
|
}
|
//初始化工作曲线
|
intitalWrkCurveInfo();
|
|
calcAllowRegionCurve();
|
calcPerferRegionCurve();
|
};
|
//绘制水印(文字)
|
var drawTextWaterMark = function (text) {
|
if (!text) {
|
return;
|
}
|
|
var logoStyle = "-webkit-transform: rotate(5deg);-moz-transform: rotate(5deg);transform: rotate(15deg);fill:#000000;fill-opacity:0.6;font-weight:bold;stroke-width:1px;font-size:16px;z-index:0";
|
|
var w = 30;
|
var h = 80;
|
var isDrawSecond = true;
|
var left = (m_chartSize.DiagramRight - m_chartSize.DiagramLeft - text.length * w) / 2;
|
|
for (var i = 0; i < text.length; i++) {
|
m_svg.createText({
|
"opacity": 0.5,
|
"y": m_chartSize.SpaceTop + h + i * 10,
|
"x": m_chartSize.DiagramLeft + left + i * w
|
}, logoStyle, text[i], 0, "WaterMarkText1");
|
|
if (isDrawSecond) {
|
var endHeight = h + text.length * 10; //: h + text.length * 10 - 80;
|
m_svg.createText({
|
"opacity": 0.5,
|
"y": m_chartSize.UpDiagram.Bottom - endHeight + i * 10,
|
"x": m_chartSize.DiagramLeft + left + i * w
|
}, logoStyle, text[i], 0, "WaterMarkText1")
|
}
|
}
|
};
|
|
//绘制水印(图片)
|
var drawLogoWaterMark = function () {
|
var watermark_img_url = "static/img/watermark/default.png";
|
|
var img_watermark = new Image()
|
img_watermark.src = watermark_img_url;
|
img_watermark.onload = function () {
|
|
var watermark_image_width_real = img_watermark.width
|
var watermark_image_height_real = img_watermark.height;
|
|
//console.log('m_chartSize',m_chartSize)//TotalHeight TotalWidth
|
var ratio_byHeight = m_chartSize.TotalHeight * 0.4 / watermark_image_height_real;
|
var ratio_byWidth = m_chartSize.TotalWidth * 0.4 / watermark_image_width_real;
|
//console.log('m_chartSize',ratio_byHeight,ratio_byWidth)//TotalHeight TotalWidth
|
var ratio_waterMark = Math.min(ratio_byHeight, ratio_byWidth);
|
|
var watermark_image_width = watermark_image_width_real * ratio_waterMark;
|
var watermark_image_height = watermark_image_height_real * ratio_waterMark;
|
|
var logoStyle = "-webkit-transform: rotate(5deg);-moz-transform: rotate(5deg);transform: rotate(15deg);fill:#000000;fill-opacity:0.6;font-weight:bold;stroke-width:1px;font-size:16px;z-index:0";
|
var logoPosi1 = {
|
"opacity": 0.9,
|
"y": m_chartSize.TotalHeight * 1 / 4 - watermark_image_height / 2,
|
"x": m_chartSize.TotalWidth * 1 / 4 - watermark_image_width / 2,
|
"width": watermark_image_width,
|
"height": watermark_image_height
|
}
|
m_svg.createImage(logoPosi1, logoStyle, "WaterMarkImage1", watermark_img_url);
|
|
var logoPosi2 = {
|
"opacity": 0.9,
|
"y": m_chartSize.TotalHeight * 3 / 4 - watermark_image_height / 2,
|
"x": m_chartSize.TotalWidth * 1 / 4 - watermark_image_width / 2,
|
"width": watermark_image_width,
|
"height": watermark_image_height
|
}
|
m_svg.createImage(logoPosi2, logoStyle, "WaterMarkImage2", watermark_img_url);
|
|
|
var logoPosi3 = {
|
"opacity": 0.9,
|
"y": m_chartSize.TotalHeight * 1 / 4 - watermark_image_height / 2,
|
"x": m_chartSize.TotalWidth * 3 / 4 - watermark_image_width / 2,
|
"width": watermark_image_width,
|
"height": watermark_image_height
|
}
|
m_svg.createImage(logoPosi3, logoStyle, "WaterMarkImage3", watermark_img_url);
|
|
var logoPosi4 = {
|
"opacity": 0.9,
|
"y": m_chartSize.TotalHeight * 3 / 4 - watermark_image_height / 2,
|
"x": m_chartSize.TotalWidth * 3 / 4 - watermark_image_width / 2,
|
"width": watermark_image_width,
|
"height": watermark_image_height
|
}
|
m_svg.createImage(logoPosi4, logoStyle, "WaterMarkImage4", watermark_img_url);
|
}
|
};
|
//产生装置曲线
|
var drawEquipmentCurve = function () {
|
$("#EquipmentCurve").remove();
|
if (m_chartObject.EquipmentSectPt == null)
|
return;
|
var pointNumber = 20;
|
var EquipmentCurve = [];
|
var space = m_chartObject.EquipmentSectPt.X / (pointNumber - 1);
|
var k = (m_chartObject.EquipmentSectPt.Y - m_equipZeroH) / (m_chartObject.EquipmentSectPt.X * m_chartObject.EquipmentSectPt.X);
|
for (var i = 0; i < pointNumber; i++) {
|
var pt = {};
|
pt.X = space * i;
|
pt.Y = m_equipZeroH + k * pt.X * pt.X;
|
EquipmentCurve.push(pt);
|
}
|
createCurveQH("EquipmentCurve", EquipmentCurve, 1, m_displayStyle.ColorEquipment, m_displayStyle.isDispEquipmentCurve);
|
};
|
//查询查询竖直指导线
|
var drawQueryIndicatVertLine = function () {
|
|
if ($("#infoDv4VerticalLine").is("div")) {
|
$("#infoDv4VerticalLine").remove();
|
}
|
|
//先创建用于放置查询信息的Div
|
var htmlDiv = "<lable style='font-size:7px'>" + getTranslateString("流量") + "</label>";
|
$("#" + m_divChartName).append($("<div id='infoDv4VerticalLine'></div>").css({
|
"position": "relative", //relative absolute
|
"color": "gray",
|
"font-size": "9px",
|
//"font-family": "Times New Roman",
|
//"font-weight": "bold",
|
"text-align": "left",
|
"width": "120px",
|
"left": (m_chartSize.DiagramRight - 125).toString() + "px",
|
"top": (12 - m_chartSize.TotalHeight).toString() + "px", // + m_divChartName + "px"
|
}).html(htmlDiv).hide());
|
|
m_infoDv4VerticalLine = $("#infoDv4VerticalLine");
|
|
|
var attr4verticalLine = {
|
"stroke": "rgb(136 136 221)",
|
"stroke-width": "6",
|
"fill": "none",
|
"zIndex": 9999,
|
"stroke-dasharray": "10 3",
|
"cursor": 'pointer',
|
"stroke-opacity": '1',
|
"shape-rendering": "geometricPrecision",
|
};
|
|
var xStartValuePixel = (m_chartSize.DiagramLeft + m_chartSize.DiagramRight) / 2; // 开始位置
|
|
|
//创建竖直线
|
var query_middle_circle_y = m_chartSize.UpDiagram.Bottom - 15;
|
var query_middle_circle_r = 10;
|
|
var vertialLine_name = "verticalLine1";
|
var vertialLine_path = "M " + xStartValuePixel + " " + m_chartSize.UpDiagram.Up + " L " + xStartValuePixel + " " + m_chartSize.DownDiagram.Bottom +
|
"M " + (xStartValuePixel - query_middle_circle_r) + " " + query_middle_circle_y + " a 10,10 0 1,0 20,0 a 10,10 0 1,0 -20,0";
|
|
m_svg.createPath(vertialLine_name, vertialLine_path, {
|
id: vertialLine_name
|
}, attr4verticalLine, null);
|
m_queryInfoIndicatorLineV = $(getSvgObjByName(vertialLine_name));
|
|
|
|
|
|
drawQueryDataInfo(xStartValuePixel);
|
|
|
var isMoveVerticalLine = false;
|
//m_svg.getPathByName("verticalLine")
|
|
m_queryInfoIndicatorLineV.on("touchstart", function (e) {
|
isMoveVerticalLine = true;
|
//WebApp.stopDefault(e);
|
e.preventDefault();
|
});
|
|
|
$(document).on("touchmove", function (event) {
|
|
if (isMoveVerticalLine) {
|
var svg_root = m_svg.getRootNode();
|
var svg = $(svg_root);
|
|
var e = event.originalEvent.touches[0]
|
if (e.clientX - svg.offset().left > m_chartSize.DiagramLeft &&
|
m_chartSize.DiagramRight + svg.offset().left - e.clientX > 0 &&
|
e.clientY - svg.offset().top > m_chartSize.DiagramTop &&
|
m_chartSize.DiagramBottom + svg.offset().top - e.clientY > 0) {
|
//当前鼠标位置 x的像素
|
var xPixel = parseFloat(e.clientX - svg.offset().left);
|
//
|
drawQueryDataInfo(xPixel);
|
//修改位置
|
if (m_queryInfoIndicatorLineV) {
|
var pathValue1 = new Array();
|
var vertialLine_path = "M " + xPixel + " " + m_chartSize.UpDiagram.Up + " L " + xPixel + " " + m_chartSize.DownDiagram.Bottom +
|
"M " + (xPixel - query_middle_circle_r) + " " + query_middle_circle_y + " a 10,10 0 1,0 20,0 a 10,10 0 1,0 -20,0";
|
m_queryInfoIndicatorLineV.attr("d", vertialLine_path);
|
//pathValue1.push("M ", xPixel, " ", m_chartSize.UpDiagram.Up, " L ", xPixel, " ", m_chartSize.DownDiagram.Bottom);
|
//m_queryInfoIndicatorLineV.attr("d", pathValue1.join(''));
|
}
|
}
|
}
|
}).on("touchend", function (e) {
|
if (isMoveVerticalLine) {
|
isMoveVerticalLine = false;
|
}
|
});
|
|
|
//设置显示
|
setQueryIndicatVertLineVisible(m_dispVerticalLine);
|
};
|
//获取x在curve的(X Y)点值 (像素点)
|
var getBezierPointY = function (curve, x) {
|
if (curve == null)
|
return null;
|
var iPtCount = curve.length;
|
|
if (x < curve[0].Point0.X - 1) {
|
return null;
|
}
|
if (x > curve[iPtCount - 1].Point3.X + 1) {
|
return null;
|
}
|
|
for (var i = 0; i < iPtCount; i++) {
|
if (x == curve[i].Point0.X) {
|
return {
|
X: curve[i].Point0.X, Y: curve[i].Point0.Y
|
};
|
}
|
if (x == curve[i].Point3.X) {
|
return {
|
X: curve[i].Point3.X, Y: curve[i].Point3.Y
|
};
|
}
|
if (x > curve[i].Point0.X && x < curve[i].Point3.X) {
|
var ptBizer = curve[i];
|
//
|
try {
|
var minDis = Math.abs(ptBizer.Point3.X - ptBizer.Point0.X);
|
var sectY = null;
|
var sectX = null;
|
for (var uu = 0; uu <= 1; uu = uu + 0.05) {
|
var x0 = ptBizer.Point0.X * uu * uu * uu;
|
var x1 = 3 * ptBizer.Point1.X * uu * uu * (1 - uu);
|
var x2 = 3 * ptBizer.Point2.X * uu * (1 - uu) * (1 - uu);
|
var x3 = ptBizer.Point3.X * (1 - uu) * (1 - uu) * (1 - uu);
|
|
var curveX = x0 + x1 + x2 + x3;
|
if (Math.abs(curveX - x) < minDis) {
|
var y0 = ptBizer.Point0.Y * uu * uu * uu;
|
var y1 = 3 * ptBizer.Point1.Y * uu * uu * (1 - uu);
|
var y2 = 3 * ptBizer.Point2.Y * uu * (1 - uu) * (1 - uu);
|
var y3 = ptBizer.Point3.Y * (1 - uu) * (1 - uu) * (1 - uu);
|
minDis = Math.abs(curveX - x);
|
sectY = y0 + y1 + y2 + y3;
|
sectX = curveX;
|
}
|
}
|
//
|
if (sectY != null && sectX != null) {
|
return {
|
X: sectX,
|
Y: sectY
|
};
|
}
|
} catch (ex) {
|
//alert(ex.message);
|
console.log("getBezierPointY error", curve, x)
|
return null;
|
}
|
}
|
}
|
|
if (x > curve[iPtCount - 1].Point3.X - 1 && x < curve[iPtCount - 1].Point3.X + 5) {
|
return {
|
X: curve[iPtCount - 1].Point3.X, Y: curve[iPtCount - 1].Point3.Y
|
};
|
}
|
|
return null;
|
};
|
//获取x在curve的(X Y)点值 (像素点)
|
var getBezierPointX = function (curve, y) {
|
if (curve == null)
|
return null;
|
var iPtCount = curve.length;
|
|
if (y < curve[0].Point0.Y && y < curve[iPtCount - 1].Point3.Y) {
|
return null;
|
}
|
if (y > curve[0].Point0.Y && y > curve[iPtCount - 1].Point3.Y) {
|
return null;
|
}
|
|
for (var i = 0; i < iPtCount; i++) {
|
var ptBizer = curve[i];
|
|
if (y < ptBizer.Point0.Y && y < ptBizer.Point3.Y) {
|
continue;
|
}
|
if (y > ptBizer.Point0.Y && y > ptBizer.Point3.Y) {
|
continue;
|
}
|
|
//
|
try {
|
var minDis = Math.abs(ptBizer.Point3.Y - ptBizer.Point0.Y);
|
|
var sectY = null;
|
var sectX = null;
|
for (var uu = 0; uu <= 1; uu = uu + 0.05) {
|
var x0 = ptBizer.Point0.X * uu * uu * uu;
|
var x1 = 3 * ptBizer.Point1.X * uu * uu * (1 - uu);
|
var x2 = 3 * ptBizer.Point2.X * uu * (1 - uu) * (1 - uu);
|
var x3 = ptBizer.Point3.X * (1 - uu) * (1 - uu) * (1 - uu);
|
|
var y0 = ptBizer.Point0.Y * uu * uu * uu;
|
var y1 = 3 * ptBizer.Point1.Y * uu * uu * (1 - uu);
|
var y2 = 3 * ptBizer.Point2.Y * uu * (1 - uu) * (1 - uu);
|
var y3 = ptBizer.Point3.Y * (1 - uu) * (1 - uu) * (1 - uu);
|
|
var curveX = x0 + x1 + x2 + x3;
|
var curveY = y0 + y1 + y2 + y3;
|
|
if (Math.abs(curveY - y) < minDis) {
|
minDis = Math.abs(curveY - y);
|
sectY = curveY
|
sectX = curveX;
|
}
|
}
|
//
|
if (sectY != null && sectX != null) {
|
return {
|
X: sectX,
|
Y: sectY
|
};
|
}
|
} catch (ex) {
|
//alert(ex.message);
|
return null;
|
}
|
}
|
|
return null;
|
};
|
//绘制/显示 参数查询信息
|
var drawQueryDataInfo = function (xPixel) { //x的像素
|
if (xPixel == null)
|
return;
|
if (m_wrkCurveGrp == null)
|
return;
|
if (m_wrkCurveGrp.PixelQH == null)
|
return;
|
//流量
|
//console.log(m_coordinatePara,m_chartSize, xPixel);
|
let flow_stdUnit = getActualValueQ(xPixel);
|
if (flow_stdUnit == null)
|
return;
|
//console.log(flow_stdUnit);
|
if (flow_stdUnit < 0.1)
|
return;
|
|
var flow_info = {};
|
flow_info.text = getTranslateString("流量");
|
flow_info.value = UnitHelper.getDispValueQ(UnitHelper.ConvertQ_fromM3H(m_unit.Q, flow_stdUnit));
|
flow_info.unit = UnitHelper.GetUnitNameQ(m_unit.Q);
|
if (flow_info.value == null || flow_info.value == "")
|
return;
|
// console.log(flow_info);
|
|
//扬程
|
var head_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQH, xPixel);
|
if (head_pixel_pt == null)
|
return;
|
var head_stdUnit = getActualValueH(head_pixel_pt.Y);
|
var head_info = {};
|
head_info.text = getTranslateString("扬程");
|
head_info.unit = UnitHelper.GetUnitNameH(m_unit.H);
|
head_info.value = UnitHelper.getDispValueH(UnitHelper.ConvertH_fromM(m_unit.H, head_stdUnit));
|
|
//效率
|
var eff_info = {};
|
eff_info.value = "";
|
if (m_isDispCurveQE) {
|
var eta_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQE, xPixel);
|
//console.log(" 1875 eta_pixel_pt",m_wrkCurveGrp.PixelQE,xPixel,eta_pixel_pt)
|
if (eta_pixel_pt != null) {
|
var eta_stdUnit = getActualValueE(eta_pixel_pt.Y);
|
|
eff_info.text = getTranslateString("效率");
|
eff_info.value = parseFloat(eta_stdUnit.toFixed(1));
|
eff_info.unit = "%";
|
}
|
}
|
|
//功率
|
var power_info = {};
|
power_info.value = "";
|
var power_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQP, xPixel);
|
if (power_pixel_pt != null) {
|
var power_stdUnit = getActualValueP(power_pixel_pt.Y);
|
power_info.text = getTranslateString("功率");
|
power_info.value = UnitHelper.getDispValueP(UnitHelper.ConvertP_fromKW(m_unit.P, power_stdUnit));
|
power_info.unit = UnitHelper.GetUnitNameP(m_unit.P);
|
}
|
|
|
var npsh_info = {}; //汽蚀
|
npsh_info.text = getTranslateString("汽蚀");
|
npsh_info.value = '';
|
npsh_info.unit = "m";
|
|
if (m_wrkCurveGrp.PixelNPSH != null && m_isDispNpsh) {
|
var npsh_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelNPSH, xPixel);
|
//console.log(npsh_pixel_pt)
|
if (npsh_pixel_pt != null) {
|
var npsh_stdUnit = getActualValueNPSH(npsh_pixel_pt.Y);
|
npsh_info.value = UnitHelper.formatToFixed(parseFloat(npsh_stdUnit), 1);
|
}
|
}
|
|
var tip_html = "";
|
var flow_html = flow_info.text + ": " + flow_info.value + " " + flow_info.unit;
|
tip_html = flow_html;
|
//console.log("flow_info",flow_info);
|
|
var head_html = head_info.text + ": " + head_info.value + " " + head_info.unit;
|
tip_html += "</br>" + head_html;
|
//console.log("head_info",head_info);
|
|
if (eff_info.value != "") {
|
var eff_html = eff_info.text + ": " + eff_info.value + " " + eff_info.unit;
|
tip_html += "</br>" + eff_html;
|
}
|
|
if (power_info.value != "") {
|
var power_html = power_info.text + ": " + power_info.value + " " + power_info.unit;
|
tip_html += "</br>" + power_html;
|
}
|
|
if (npsh_info.value != "") {
|
var npsh_html = npsh_info.text + ": " + npsh_info.value + " " + npsh_info.unit;
|
tip_html += "</br>" + npsh_html;
|
}
|
|
m_infoDv4VerticalLine.show().html(tip_html);
|
|
|
|
//获取查询曲线查询得到的数据 给参数查询使用
|
if (onChangeQueryDataCb != null) {
|
onChangeQueryDataCb({
|
Q: flow_info,
|
H: head_info,
|
E: eff_info,
|
P: power_info,
|
NPSH: npsh_info
|
})
|
}
|
|
};
|
//根据流量获取点
|
var getGrpPointInWrkCurveByFlow = function (flow_stdUnit) {
|
if (flow_stdUnit == null)
|
return null;
|
if (flow_stdUnit < 0.1)
|
return null;
|
|
//var UnitHelper.ConvertQ_fromM3H(m_unit.Q, flow_stdUnit)
|
var xPixel = getPixelValueQ(flow_stdUnit);
|
|
//扬程
|
var head_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQH, xPixel);
|
if (head_pixel_pt == null)
|
return;
|
var head_stdUnit = getActualValueH(head_pixel_pt.Y);
|
|
|
|
//效率
|
var eta_stdUnit = 0;
|
if (m_isDispCurveQE) {
|
var eta_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQE, xPixel);
|
if (eta_pixel_pt != null) {
|
eta_stdUnit = getActualValueE(eta_pixel_pt.Y);
|
eta_stdUnit = parseFloat(eta_stdUnit.toFixed(1));
|
}
|
}
|
|
//功率
|
var power_stdUnit = 0;
|
var power_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelQP, xPixel);
|
if (power_pixel_pt != null) {
|
power_stdUnit = getActualValueP(power_pixel_pt.Y);
|
}
|
|
|
var npsh_stdUnit = 0;
|
if (m_wrkCurveGrp.PixelNPSH != null) {
|
var npsh_pixel_pt = getBezierPointY(m_wrkCurveGrp.PixelNPSH, xPixel);
|
if (npsh_pixel_pt != null) {
|
npsh_stdUnit = getActualValueNPSH(npsh_pixel_pt.Y);
|
}
|
}
|
|
var grp_pt = {};
|
grp_pt.Q = flow_stdUnit;
|
grp_pt.H = head_stdUnit;
|
grp_pt.E = eta_stdUnit;
|
grp_pt.P = power_stdUnit;
|
grp_pt.NPSH = npsh_stdUnit;
|
|
return grp_pt;
|
};
|
//查询线
|
var m_infoDv4VerticalLine;
|
var m_queryInfoIndicatorLineV;
|
var m_dispVerticalLine = false;
|
var onChangeQueryDataCb = null; //查询外部回调
|
//设置是否显示
|
var setQueryIndicatVertLineVisible = function (disp) {
|
m_dispVerticalLine = disp;
|
if (disp) {
|
m_infoDv4VerticalLine.show();
|
m_queryInfoIndicatorLineV.show();
|
} else {
|
m_infoDv4VerticalLine.hide();
|
m_queryInfoIndicatorLineV.hide();
|
}
|
};
|
//绘制图表(核心代码)
|
var drawChart = function () {
|
//面板(含坐标)
|
drawDiagramPanel();
|
|
//绘制线
|
if (m_chartType == ConstParas.ChartType.Cut) {
|
if (m_displayStyle.IsOnlyDispWrkCurve)
|
drawAllCurve_Cut_Wrk();
|
else
|
drawAllCurve_Cut_Full();
|
} else if (m_chartType == ConstParas.ChartType.Speed) {
|
if (m_displayStyle.IsOnlyDispWrkCurve)
|
drawAllCurve_Speed_Wrk();
|
else
|
drawAllCurve_Speed_Full();
|
} else if (m_chartType == ConstParas.ChartType.BaoLuo) {
|
drawAllCurve_BaoLuo();
|
} else
|
return;
|
|
//设计点
|
drawDesignPoint();
|
|
|
|
|
//绘制水印
|
// console.log(m_warterMarkText)
|
//if (m_displayStyle.isDrawWaterMark && m_warterMarkText != null && m_warterMarkText != "")
|
// drawTextWaterMark(m_warterMarkText);
|
drawLogoWaterMark();
|
|
|
//装置曲线
|
drawEquipmentCurve();
|
|
//查询指示线
|
drawQueryIndicatVertLine();
|
|
//
|
// createMouseTipInfo();
|
};
|
//
|
var createGridLineDiagram_Whole = function () {
|
if (m_coordinatePara == null) {
|
return;
|
}
|
|
var attr = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none",
|
"zIndex": 10
|
};
|
if (m_displayStyle != null && m_displayStyle.GridLine != null) {
|
attr = m_displayStyle.GridLine;
|
}
|
//产生网格线竖直方向
|
for (var i = 0; i <= m_coordinatePara.GridNumberX; i++) {
|
var distance = m_chartSize.SpaceGridX * i;
|
var valueTemp = new Array();
|
valueTemp.push("M ", m_chartSize.DiagramLeft + distance, " ", m_chartSize.SpaceTop, " L ", m_chartSize.DiagramLeft + distance, " ", m_chartSize.UpDiagram.Bottom);
|
m_svg.createPath("GridLienX" + i, valueTemp.join(''), attr, null);
|
}
|
|
//产生网格线水平方向
|
for (var i = 0; i <= m_coordinatePara.GridNumberY; i++) {
|
var distance = m_chartSize.UpDiagram.SpaceGridY * i;
|
var valueTemp = new Array();
|
valueTemp.push("M ", m_chartSize.DiagramLeft, " ", m_chartSize.SpaceTop + distance, " L ", m_chartSize.DiagramRight, " ", m_chartSize.SpaceTop + distance);
|
m_svg.createPath("GridLienY" + i, valueTemp.join(''), attr, null);
|
}
|
|
|
};
|
//绘制面板(分离)
|
var createGridLineDiagram_TwoPanel = function () {
|
if (m_coordinatePara == null) {
|
return;
|
}
|
|
var attr = {
|
"stroke": "#cccccc",
|
"stroke-width": "1",
|
"fill": "none",
|
"zIndex": 10
|
};
|
if (m_displayStyle != null && m_displayStyle.GridLine != null) {
|
attr = m_displayStyle.GridLine;
|
}
|
//产生网格线竖直方向
|
for (var i = 0; i <= m_coordinatePara.GridNumberX; i++) {
|
var distance = m_chartSize.SpaceGridX * i;
|
var valueTemp = new Array();
|
valueTemp.push("M ", m_chartSize.DiagramLeft + distance, " ", m_chartSize.UpDiagram.Up, " L ", m_chartSize.DiagramLeft + distance, " ", m_chartSize.UpDiagram.Bottom);
|
m_svg.createPath("GridLienX" + i, valueTemp.join(''), attr, null);
|
|
//console.log(m_chartSize.DiagramLeft + distance , m_chartSize.UpDiagram.Up, m_chartSize.DiagramLeft + distance, m_chartSize.UpDiagram.Bottom)
|
}
|
|
|
|
for (var i = 0; i <= m_coordinatePara.GridNumberX; i++) {
|
var distance = m_chartSize.SpaceGridX * i;
|
var valueTemp = new Array();
|
valueTemp.push("M ", m_chartSize.DiagramLeft + distance, " ", m_chartSize.DownDiagram.Up, " L ", m_chartSize.DiagramLeft + distance, " ", m_chartSize.DownDiagram.Bottom);
|
m_svg.createPath("GridLienX" + i, valueTemp.join(''), attr, null);
|
}
|
|
//产生网格线水平方向
|
for (var i = 0; i <= m_chartSize.UpDiagram.GridNumberY; i++) {
|
var distance = m_chartSize.UpDiagram.SpaceGridY * i;
|
var valueTemp = new Array();
|
valueTemp.push("M ", m_chartSize.DiagramLeft, " ", m_chartSize.UpDiagram.Up + distance, " L ", m_chartSize.DiagramRight, " ", m_chartSize.UpDiagram.Up + distance);
|
m_svg.createPath("GridLienY" + i, valueTemp.join(''), attr, null);
|
}
|
|
for (var i = 0; i <= m_chartSize.DownDiagram.GridNumberY; i++) {
|
var distance = m_chartSize.DownDiagram.SpaceGridY * i;
|
var valueTemp = new Array();
|
valueTemp.push("M ", m_chartSize.DiagramLeft, " ", m_chartSize.DownDiagram.Up + distance, " L ", m_chartSize.DiagramRight, " ", m_chartSize.DownDiagram.Up + distance);
|
m_svg.createPath("GridLienY" + i, valueTemp.join(''), attr, null);
|
}
|
};
|
//转成Bezier曲线模型
|
var transBezierCurveModel = function (pixelPoints) {
|
if (pixelPoints == null || pixelPoints.length < 4)
|
return null;
|
|
var iPointCout = pixelPoints.length;
|
var a = 0.09;
|
var b = 0.09;
|
var controlPoint = new Array();
|
|
for (var i = 0; i < iPointCout - 1; i++) {
|
var bezier = {};
|
bezier.Point0 = pixelPoints[i];
|
if (i == 0) {
|
var x1 = pixelPoints[i].X + a * (pixelPoints[i + 1].X - pixelPoints[i].X);
|
var y1 = pixelPoints[i].Y + a * (pixelPoints[i + 1].Y - pixelPoints[i].Y);
|
bezier.Point1 = {
|
"X": x1,
|
"Y": y1
|
};
|
} else {
|
var x1 = pixelPoints[i].X + a * (pixelPoints[i + 1].X - pixelPoints[i - 1].X);
|
var y1 = pixelPoints[i].Y + a * (pixelPoints[i + 1].Y - pixelPoints[i - 1].Y);
|
bezier.Point1 = {
|
"X": x1,
|
"Y": y1
|
}
|
}
|
|
if (i == iPointCout - 2) {
|
var x2 = pixelPoints[i + 1].X - b * (pixelPoints[i + 1].X - pixelPoints[i].X);
|
var y2 = pixelPoints[i + 1].Y - b * (pixelPoints[i + 1].Y - pixelPoints[i].Y);
|
bezier.Point2 = {
|
"X": x2,
|
"Y": y2
|
}
|
} else {
|
var x2 = pixelPoints[i + 1].X - b * (pixelPoints[i + 2].X - pixelPoints[i].X);
|
var y2 = pixelPoints[i + 1].Y - b * (pixelPoints[i + 2].Y - pixelPoints[i].Y);
|
bezier.Point2 = {
|
"X": x2,
|
"Y": y2
|
}
|
}
|
|
bezier.Point3 = pixelPoints[i + 1];
|
controlPoint.push(bezier);
|
}
|
return controlPoint;
|
};
|
|
//转成曲线路径
|
var transBezierCurveToPath = function (pixelPoints) {
|
var bezierCurveValue = transBezierCurveModel(pixelPoints);
|
if (bezierCurveValue == null) {
|
return;
|
}
|
var pathValue = new Array();
|
for (var h = 0; h < bezierCurveValue.length; h++) {
|
if (h == 0) {
|
pathValue.push("M ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
} else {
|
pathValue.push(" L ", bezierCurveValue[h].Point0.X, " ", bezierCurveValue[h].Point0.Y);
|
pathValue.push(" C ", bezierCurveValue[h].Point1.X, " ", bezierCurveValue[h].Point1.Y, " ", bezierCurveValue[h].Point2.X, " ", bezierCurveValue[h].Point2.Y, " ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
}
|
if (h == bezierCurveValue.length - 1) {
|
pathValue.push(" L ", bezierCurveValue[h].Point3.X, " ", bezierCurveValue[h].Point3.Y);
|
}
|
}
|
return pathValue;
|
};
|
|
//返回标准单位下的值
|
var getActualValueQ = function (pixelValue) {
|
var actualMinValue = m_coordinatePara.DispMinQ;
|
var actualMaxValue = m_coordinatePara.DispMaxQ;
|
var pixelMinValue = m_chartSize.DiagramLeft;
|
var pixelMaxValue = m_chartSize.DiagramRight;
|
return (pixelValue - pixelMinValue) / (pixelMaxValue - pixelMinValue) * (actualMaxValue - actualMinValue) + actualMinValue;
|
};
|
var getActualValueH = function (pixelValue) {
|
var actualMinValue = m_coordinatePara.DispMinH;
|
var actualMaxValue = m_coordinatePara.DispMaxH;
|
var pixelMinValue = m_chartSize.PanelH.Bottom;
|
var pixelMaxValue = m_chartSize.PanelH.Up;
|
|
var actualValue = (pixelValue - pixelMinValue) / (pixelMaxValue - pixelMinValue) * (actualMaxValue - actualMinValue) + actualMinValue;
|
//console.log("getActualValueH", actualValue, actualMinValue,actualMaxValue,pixelMinValue,pixelMaxValue);
|
|
return actualValue;
|
};
|
var getActualValueE = function (pixelValue) {
|
var actualMinValue = m_coordinatePara.DispMinE;
|
var actualMaxValue = m_coordinatePara.DispMaxE;
|
var pixelMinValue = m_chartSize.PanelE.Bottom;
|
var pixelMaxValue = m_chartSize.PanelE.Up;
|
|
var actualValue = (pixelValue - pixelMinValue) / (pixelMaxValue - pixelMinValue) * (actualMaxValue - actualMinValue) + actualMinValue;
|
//console.log("getActualValueE",actualValue, actualMinValue,actualMaxValue,pixelMinValue,pixelMaxValue);
|
|
return actualValue;
|
};
|
var getActualValueP = function (pixelValue) {
|
var actualMinValue = m_coordinatePara.DispMinP;
|
var actualMaxValue = m_coordinatePara.DispMaxP;
|
var pixelMinValue = m_chartSize.PanelP.Bottom;
|
var pixelMaxValue = m_chartSize.PanelP.Up;
|
return (pixelValue - pixelMinValue) / (pixelMaxValue - pixelMinValue) * (actualMaxValue - actualMinValue) + actualMinValue;
|
};
|
var getActualValueNPSH = function (pixelValue) {
|
var actualMinValue = m_coordinatePara.DispMinNPSH;
|
var actualMaxValue = m_coordinatePara.DispMaxNPSH;
|
var pixelMinValue = m_chartSize.PanelNPSH.Bottom;
|
var pixelMaxValue = m_chartSize.PanelNPSH.Up;
|
var actualValue = (pixelValue - pixelMinValue) / (pixelMaxValue - pixelMinValue) * (actualMaxValue - actualMinValue) + actualMinValue;
|
// console.log("getActualValueNPSH",actualValue, actualMinValue,actualMaxValue,pixelMinValue,pixelMaxValue);
|
return actualValue;
|
};
|
|
// actualValue 是标准单位下的值
|
var getPixelValueQ = function (actualValue) {
|
var actualMinValue = m_coordinatePara.DispMinQ;
|
var actualMaxValue = m_coordinatePara.DispMaxQ;
|
var pixelMinValue = m_chartSize.DiagramLeft;
|
var pixelMaxValue = m_chartSize.DiagramRight;
|
|
return (actualValue - actualMinValue) / (actualMaxValue - actualMinValue) * (pixelMaxValue - pixelMinValue) + pixelMinValue;
|
};
|
var getPixelValueH = function (actualValue) {
|
|
var actualMinValue = m_coordinatePara.DispMinH;
|
var actualMaxValue = m_coordinatePara.DispMaxH;
|
var pixelMinValue = m_chartSize.PanelH.Bottom;
|
var pixelMaxValue = m_chartSize.PanelH.Up;
|
|
if (actualMaxValue == actualMinValue)
|
return actualMinValue;
|
|
var v = (actualValue - actualMinValue) / (actualMaxValue - actualMinValue) * (pixelMaxValue - pixelMinValue) + pixelMinValue;
|
//console.log("getPixelValueH",actualValue,v, actualMinValue,actualMaxValue,pixelMinValue,pixelMaxValue);
|
return v
|
};
|
var getPixelValueE = function (actualValue) {
|
var actualMinValue = m_coordinatePara.DispMinE;
|
var actualMaxValue = m_coordinatePara.DispMaxE;
|
var pixelMinValue = m_chartSize.PanelE.Bottom;
|
var pixelMaxValue = m_chartSize.PanelE.Up;
|
if (actualMaxValue == actualMinValue)
|
return actualMinValue;
|
|
return (actualValue - actualMinValue) / (actualMaxValue - actualMinValue) * (pixelMaxValue - pixelMinValue) + pixelMinValue;
|
};
|
var getPixelValueP = function (actualValue) {
|
var actualMinValue = m_coordinatePara.DispMinP;
|
var actualMaxValue = m_coordinatePara.DispMaxP;
|
var pixelMinValue = m_chartSize.PanelP.Bottom;
|
var pixelMaxValue = m_chartSize.PanelP.Up;
|
if (actualMaxValue == actualMinValue)
|
return actualMinValue;
|
|
return (actualValue - actualMinValue) / (actualMaxValue - actualMinValue) * (pixelMaxValue - pixelMinValue) + pixelMinValue;
|
};
|
var getPixelValueNPSH = function (actualValue) {
|
var actualMinValue = m_coordinatePara.DispMinNPSH;
|
var actualMaxValue = m_coordinatePara.DispMaxNPSH;
|
var pixelMinValue = m_chartSize.PanelNPSH.Bottom;
|
var pixelMaxValue = m_chartSize.PanelNPSH.Up;
|
if (actualMaxValue == actualMinValue)
|
return actualMinValue;
|
|
return (actualValue - actualMinValue) / (actualMaxValue - actualMinValue) * (pixelMaxValue - pixelMinValue) + pixelMinValue;
|
};
|
|
|
|
|
|
/** ----------------对外函数-------------------- **/
|
|
//设置设计点公差
|
this.SetUnit = function (unitQ, unitH, unitP) {
|
m_unit.Q = unitQ;
|
m_unit.H = unitH;
|
m_unit.P = unitP;
|
};
|
//设置容器
|
this.setContainerDiv = function (divChartName, divWidth, divHeight) {
|
m_divChartName = divChartName;
|
|
if (m_chartSize == null) {
|
m_chartSize = {};
|
}
|
|
if (divWidth != null) {
|
m_chartSize.TotalWidth = divWidth;
|
} else {
|
m_chartSize.TotalWidth = document.getElementById(divChartName).clientWidth;
|
}
|
|
if (divHeight != null) {
|
m_chartSize.TotalHeight = divHeight;
|
} else {
|
m_chartSize.TotalHeight = document.getElementById(divChartName).clientHeight;
|
}
|
};
|
//设置语言
|
this.setLocalizationType = function (localizationType) {
|
m_localizationType = localizationType;
|
};
|
//设置工具提示栏
|
this.setToolTipName = function (toolTipName) {
|
m_toolTipContent = $("#" + toolTipName);
|
};
|
//获取查询曲线查询得到的数据 给参数查询使用
|
this.setChangeQueryDataCb = function (cb) {
|
onChangeQueryDataCb = cb;
|
};
|
this.setQueryIndicatVertLineVisible = function (isVisible) {
|
setQueryIndicatVertLineVisible(isVisible);
|
};
|
this.getQueryIndicatVertLineVisible = function () {
|
return m_dispVerticalLine;
|
};
|
|
//初始化图表(入口)
|
this.initialChart = function (ChartFullInfo, displayStyle) {
|
if (!m_divChartName)
|
return;
|
//console.log("initialChart ChartFullInfo", ChartFullInfo)
|
//清空
|
$("#" + m_divChartName).empty();
|
|
if (ChartFullInfo.ChartObjectDict == null)
|
return;
|
if (ChartFullInfo.ChartObjectDict.Coordinate == null)
|
return;
|
|
m_designPointTolerance = PointToleranceConfig.GetDefaultTolerancePara();
|
|
m_chartType = ChartFullInfo.BaseInfo.ChartType;
|
//console.log("m_chartType", m_chartType)
|
m_pumpInfo = ChartFullInfo.BaseInfo;
|
m_chartPointPara = ChartFullInfo.ChartPointPara;
|
m_chartSetting = ChartFullInfo.SettingInfo;
|
m_chartObject = ChartFullInfo.ChartObjectDict;
|
m_coordinatePara = ChartFullInfo.ChartObjectDict.Coordinate; //extend(m_coordinatePara, ChartFullInfo.Coordinate);
|
|
|
|
|
this.SetUnit( //设置单位
|
m_chartSetting.UnitQ,
|
m_chartSetting.UnitH,
|
m_chartSetting.UnitP);
|
|
|
|
//console.log(ChartFullInfo.SettingInfo)
|
// console.log(this.m_coordinatePara,"cccc")
|
if (m_chartSetting != null) {
|
if (m_chartSetting.IsDispCurveQE != null) {
|
m_isDispCurveQE = m_chartSetting.IsDispCurveQE;
|
}
|
m_d2IsMeter = m_chartSetting ? m_chartSetting.IsD2Meter : true;
|
}
|
|
//初始化显示设置
|
initialDispStyle(displayStyle, m_chartSetting);
|
|
m_chartDiagramPanelStyle = ConstParas.ChartDiagramPanelStyle.Two;
|
|
//初始化面板尺寸
|
initialPanelSize();
|
|
// console.log(m_displayStyle,m_coordinatePara)
|
|
drawChart();
|
|
|
// console.log(this,"433")
|
return this;
|
};
|
//修改了区域点
|
this.refreshRegionByFlow = function (std_unit_flow, tag) {
|
|
if (tag == null)
|
return null;
|
var pt = getGrpPointInWrkCurveByFlow(std_unit_flow);
|
if (pt != null) {
|
refreshRegionPtPosi(pt, tag);
|
}
|
|
return pt;
|
};
|
//修改了设计点
|
this.refreshByDp = function (response) {
|
//
|
var ChartInfo = response.ChartObjectDict;
|
// console.log(response )
|
|
m_chartPointPara = response.ChartPointPara;
|
|
m_chartObject.EquipmentSectPt = ChartInfo.EquipmentSectPt;
|
m_chartObject.SimWaterCurveQH = ChartInfo.SimWaterCurveQH;
|
m_chartObject.SimWaterCurveQE = ChartInfo.SimWaterCurveQE;
|
m_chartObject.SimWaterCurveQP = ChartInfo.SimWaterCurveQP;
|
m_chartObject.SimWaterCurveNPSH = ChartInfo.SimWaterCurveNPSH;
|
|
m_chartObject.SimJieZhiCurveQH = ChartInfo.SimJieZhiCurveQH;
|
m_chartObject.SimJieZhiCurveQE = ChartInfo.SimJieZhiCurveQE;
|
m_chartObject.SimJieZhiCurveQP = ChartInfo.SimJieZhiCurveQP;
|
m_chartObject.SimJieZhiCurveNPSH = ChartInfo.SimJieZhiCurveNPSH;
|
|
m_chartObject.DesignPoint4StdUnit = ChartInfo.DesignPoint4StdUnit;
|
|
|
|
ClearCurveElement();
|
|
if (m_chartType == ConstParas.ChartType.Cut) {
|
m_pumpInfo.WrkD2 = response.BaseInfo.WrkD2;
|
|
if (m_displayStyle.IsOnlyDispWrkCurve)
|
drawAllCurve_Cut_Wrk();
|
else
|
drawAllCurve_Cut_Full();
|
} else if (m_chartType == ConstParas.ChartType.Speed) {
|
m_pumpInfo.WrkSpeed = response.BaseInfo.WrkSpeed;
|
|
if (m_displayStyle.IsOnlyDispWrkCurve)
|
drawAllCurve_Speed_Wrk();
|
else
|
drawAllCurve_Speed_Full();
|
} else if (m_chartType == ConstParas.ChartType.BaoLuo) {
|
drawAllCurve_BaoLuo();
|
} else
|
return;
|
|
//设计点
|
drawDesignPoint();
|
|
|
|
//装置曲线
|
drawEquipmentCurve();
|
};
|
};
|
|
export default LxpChartDiagram
|