using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Drawing;
|
using System.Drawing.Drawing2D;
|
using Eventech.Utils.Images;
|
namespace TProduct.PumpGraph.Picture
|
{
|
public partial class ZlpFeatChart1
|
{
|
private void DrawAxisX()
|
{
|
var gridSpaceWidthX = (float)(this._chartDiagram.Width / (_coordinateParas.AxisLabelQ.Count - 1));//X轴上格子的宽度
|
double coorminQ = _coordinateParas.AxisLabelQ[0];//最小显示值
|
double coordspace = _coordinateParas.AxisLabelQ[1] - coorminQ;//一个格子代表的数值15
|
|
//X坐标显示刻度
|
bool isInteralDisap = true;
|
if (gridSpaceWidthX > 10)
|
{
|
if (this._imageTotalWidth > 900 && coordspace < 1000)
|
{
|
isInteralDisap = false;
|
}
|
}
|
|
StringFormat sf = new StringFormat();
|
sf.Alignment = StringAlignment.Center; //水平居中
|
sf.LineAlignment = StringAlignment.Near; //垂直上对齐
|
|
using (System.Drawing.Pen pen_majorTick = new System.Drawing.Pen(_gridLineColorH, GridLineWidth))
|
using (System.Drawing.Pen pen_gridLine = new System.Drawing.Pen(_gridLineColorX, _gridLineWidthX))
|
using (var font = new System.Drawing.Font("Arial", _axisLabelSizeX, System.Drawing.FontStyle.Regular))
|
using (var brush = new System.Drawing.SolidBrush(Color.Black))
|
{
|
for (int i = 0; i < _coordinateParas.AxisLabelQ.Count; i++)
|
{
|
double kedu_d = _coordinateParas.AxisLabelQ[i];
|
var map_x = (float)((kedu_d - _coordinateParas.AxisLabelQ.First()) * _chartDiagram.Width / (_coordinateParas.AxisLabelQ.Last() - _coordinateParas.AxisLabelQ.First())) + _chartDiagram.Left;
|
//MapRealToPictQ(kedu_d);
|
if (_isDispGridLineX)
|
{
|
PointF startYgeziPt = new PointF(map_x, _chartDiagram.Top);
|
PointF endYgeziPt = new PointF(map_x, _chartDiagram.Bottom);
|
_graphics.DrawLine(pen_gridLine, startYgeziPt, endYgeziPt);
|
}
|
|
|
|
|
PointF startPt_marjor = new PointF(map_x, _chartDiagram.Bottom);
|
PointF endPt_marjor = new PointF(map_x, _chartDiagram.Bottom + _axisMajorTickLength);
|
_graphics.DrawLine(pen_majorTick, startPt_marjor, endPt_marjor);
|
|
|
|
if (isInteralDisap)
|
i = i + 1;
|
|
|
string kedu_str = kedu_d.ToString();
|
|
_graphics.DrawString(kedu_str, font, brush, new PointF(map_x, _chartDiagram.Bottom + _axisLabelSpaceToDiagramQ), sf);
|
}
|
}
|
|
|
|
//画X坐标说明,流量(L/s)
|
string title = null;
|
if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.M3H)
|
title = TranslateString("流量") + "(m³/h)";
|
else if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.Ft3H)
|
title = TranslateString("流量") + "(ft³/h)";
|
else if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.Ft3Min)
|
title = TranslateString("流量") + "(ft³/min)";
|
else if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.LS)
|
title = TranslateString("流量") + "(L/s)";
|
else if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.M3Min)
|
title = TranslateString("流量") + "(m³/min)";
|
else if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.USGalMin)
|
title = TranslateString("流量") + "(USGal/Min)";
|
else if (_coordinateParas.UnitQ == Eventech.Model.UnitQ.LmpGalMin)
|
title = TranslateString("流量") + "(LmpGal/Min)";
|
PointF posi_title = new PointF();
|
posi_title.X = (this._chartDiagram.Left + _diagramRightBottomPt.X) / 2;
|
posi_title.Y = this._chartDiagram.Bottom + _axisTitleSpaceToDiagramQ;
|
using (var font = new System.Drawing.Font("Arial", AxisTitleTextSizeQ, System.Drawing.FontStyle.Regular))
|
using (var brush = new System.Drawing.SolidBrush(AxisTitleTextColorQ))
|
{
|
StringFormat sf_title = new StringFormat();
|
sf_title.Alignment = StringAlignment.Center; //水平居中
|
sf_title.LineAlignment = StringAlignment.Near; //垂直上对齐
|
_graphics.DrawString(title, font, brush, posi_title, sf_title);
|
}
|
|
}
|
}
|
}
|