Commit e4f7ce16 HZH

雷达图增加圆分隔

1 个父辈 0813ed10
......@@ -51,6 +51,10 @@ namespace HZH_Controls.Controls
Invalidate();
}
}
[Browsable(true)]
[Category("自定义")]
[Description("获取或设置是否使用圆代替连线进行分隔")]
public bool UseRoundSplit { get; set; }
/// <summary>
/// The split odd color
......@@ -86,7 +90,11 @@ namespace HZH_Controls.Controls
public Color SplitEvenColor
{
get { return splitEvenColor; }
set { splitEvenColor = value; }
set
{
splitEvenColor = value;
Invalidate();
}
}
/// <summary>
......@@ -218,6 +226,7 @@ namespace HZH_Controls.Controls
}
/// <summary>
/// The title size
/// </summary>
......@@ -414,7 +423,7 @@ namespace HZH_Controls.Controls
for (int j = 0; j < intCount; j++)
{
g.FillRectangle(new SolidBrush(lines[i * intLineValueComCount + j].LineColor.Value), new RectangleF(x + (lineValueTypeSize.Width + 25)*j, y + lineValueTypeSize.Height * i, 15, lineValueTypeSize.Height));
g.FillRectangle(new SolidBrush(lines[i * intLineValueComCount + j].LineColor.Value), new RectangleF(x + (lineValueTypeSize.Width + 25) * j, y + lineValueTypeSize.Height * i, 15, lineValueTypeSize.Height));
g.DrawString(lines[i * intLineValueComCount + j].Name, Font, new SolidBrush(lines[i * intLineValueComCount + j].LineColor.Value), new PointF(x + (lineValueTypeSize.Width + 25) * j + 20, y + lineValueTypeSize.Height * i));
}
}
......@@ -441,26 +450,46 @@ namespace HZH_Controls.Controls
}
}
for (int i = 0; i < lstRingPoints.Count; i++)
if (UseRoundSplit)
{
var ring = lstRingPoints[i];
GraphicsPath path = new GraphicsPath();
path.AddLines(ring.ToArray());
if ((lstRingPoints.Count - i) % 2 == 0)
for (int i = 0; i < splitCount; i++)
{
g.FillPath(new SolidBrush(splitEvenColor), path);
}
else
{
g.FillPath(new SolidBrush(splitOddColor), path);
RectangleF rect = new RectangleF(centrePoint.X - fltSplitRadiusWidth * (splitCount - i), centrePoint.Y - fltSplitRadiusWidth * (splitCount - i), fltSplitRadiusWidth * (splitCount - i) * 2, fltSplitRadiusWidth * (splitCount - i) * 2);
if (i % 2 == 0)
{
g.FillEllipse(new SolidBrush(splitOddColor), rect);
}
else
{
g.FillEllipse(new SolidBrush(splitEvenColor), rect);
}
g.DrawEllipse(new Pen(new SolidBrush(lineColor)), rect);
}
}
//画环
foreach (var ring in lstRingPoints)
else
{
ring.Add(ring[0]);
g.DrawLines(new Pen(new SolidBrush(lineColor)), ring.ToArray());
//间隔颜色
for (int i = 0; i < lstRingPoints.Count; i++)
{
var ring = lstRingPoints[i];
GraphicsPath path = new GraphicsPath();
path.AddLines(ring.ToArray());
if ((lstRingPoints.Count - i) % 2 == 0)
{
g.FillPath(new SolidBrush(splitEvenColor), path);
}
else
{
g.FillPath(new SolidBrush(splitOddColor), path);
}
}
//画环
foreach (var ring in lstRingPoints)
{
ring.Add(ring[0]);
g.DrawLines(new Pen(new SolidBrush(lineColor)), ring.ToArray());
}
}
//分割线
foreach (var item in lstRingPoints[0])
......
......@@ -61,10 +61,29 @@
HZH_Controls.Controls.RadarPosition radarPosition22 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition23 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition24 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarLine radarLine10 = new HZH_Controls.Controls.RadarLine();
HZH_Controls.Controls.RadarLine radarLine11 = new HZH_Controls.Controls.RadarLine();
HZH_Controls.Controls.RadarPosition radarPosition25 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition26 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition27 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition28 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition29 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition30 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarLine radarLine12 = new HZH_Controls.Controls.RadarLine();
HZH_Controls.Controls.RadarLine radarLine13 = new HZH_Controls.Controls.RadarLine();
HZH_Controls.Controls.RadarLine radarLine14 = new HZH_Controls.Controls.RadarLine();
HZH_Controls.Controls.RadarPosition radarPosition31 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition32 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition33 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition34 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition35 = new HZH_Controls.Controls.RadarPosition();
HZH_Controls.Controls.RadarPosition radarPosition36 = new HZH_Controls.Controls.RadarPosition();
this.ucRadarChart4 = new HZH_Controls.Controls.UCRadarChart();
this.ucRadarChart3 = new HZH_Controls.Controls.UCRadarChart();
this.ucRadarChart5 = new HZH_Controls.Controls.UCRadarChart();
this.ucRadarChart2 = new HZH_Controls.Controls.UCRadarChart();
this.ucRadarChart1 = new HZH_Controls.Controls.UCRadarChart();
this.ucRadarChart6 = new HZH_Controls.Controls.UCRadarChart();
this.SuspendLayout();
//
// ucRadarChart4
......@@ -136,6 +155,7 @@
this.ucRadarChart4.Title = "空气污染度";
this.ucRadarChart4.TitleColor = System.Drawing.Color.Black;
this.ucRadarChart4.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart4.UseRoundSplit = false;
//
// ucRadarChart3
//
......@@ -194,10 +214,13 @@
this.ucRadarChart3.Title = "有标题、填充颜色、数值的图表";
this.ucRadarChart3.TitleColor = System.Drawing.Color.Black;
this.ucRadarChart3.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart3.UseRoundSplit = false;
//
// ucRadarChart2
// ucRadarChart5
//
this.ucRadarChart2.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))));
this.ucRadarChart5.BackColor = System.Drawing.Color.Black;
this.ucRadarChart5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.ucRadarChart5.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(10)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))));
radarLine6.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine6.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine6.Name = "line0";
......@@ -209,7 +232,7 @@
83D,
21D,
90D};
radarLine7.FillColor = null;
radarLine7.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine7.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(156)))), ((int)(((byte)(39)))), ((int)(((byte)(176)))));
radarLine7.Name = "line1";
radarLine7.ShowValueText = false;
......@@ -220,11 +243,11 @@
89D,
53D,
65D};
this.ucRadarChart2.Lines = new HZH_Controls.Controls.RadarLine[] {
this.ucRadarChart5.Lines = new HZH_Controls.Controls.RadarLine[] {
radarLine6,
radarLine7};
this.ucRadarChart2.Location = new System.Drawing.Point(394, 71);
this.ucRadarChart2.Name = "ucRadarChart2";
this.ucRadarChart5.Location = new System.Drawing.Point(737, 71);
this.ucRadarChart5.Name = "ucRadarChart5";
radarPosition13.MaxValue = 100D;
radarPosition13.Text = "Item1";
radarPosition14.MaxValue = 100D;
......@@ -237,26 +260,27 @@
radarPosition17.Text = "Item5";
radarPosition18.MaxValue = 100D;
radarPosition18.Text = "Item6";
this.ucRadarChart2.RadarPositions = new HZH_Controls.Controls.RadarPosition[] {
this.ucRadarChart5.RadarPositions = new HZH_Controls.Controls.RadarPosition[] {
radarPosition13,
radarPosition14,
radarPosition15,
radarPosition16,
radarPosition17,
radarPosition18};
this.ucRadarChart2.Size = new System.Drawing.Size(337, 336);
this.ucRadarChart2.SplitCount = 5;
this.ucRadarChart2.SplitEvenColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232)))));
this.ucRadarChart2.SplitOddColor = System.Drawing.Color.White;
this.ucRadarChart2.TabIndex = 0;
this.ucRadarChart2.Title = "有标题和填充颜色的图表";
this.ucRadarChart2.TitleColor = System.Drawing.Color.Black;
this.ucRadarChart2.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart5.Size = new System.Drawing.Size(337, 336);
this.ucRadarChart5.SplitCount = 5;
this.ucRadarChart5.SplitEvenColor = System.Drawing.Color.Black;
this.ucRadarChart5.SplitOddColor = System.Drawing.Color.Black;
this.ucRadarChart5.TabIndex = 0;
this.ucRadarChart5.Title = "有标题和填充颜色的图表";
this.ucRadarChart5.TitleColor = System.Drawing.Color.White;
this.ucRadarChart5.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart5.UseRoundSplit = true;
//
// ucRadarChart1
// ucRadarChart2
//
this.ucRadarChart1.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))));
radarLine8.FillColor = null;
this.ucRadarChart2.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))));
radarLine8.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine8.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine8.Name = "line0";
radarLine8.ShowValueText = false;
......@@ -278,11 +302,11 @@
89D,
53D,
65D};
this.ucRadarChart1.Lines = new HZH_Controls.Controls.RadarLine[] {
this.ucRadarChart2.Lines = new HZH_Controls.Controls.RadarLine[] {
radarLine8,
radarLine9};
this.ucRadarChart1.Location = new System.Drawing.Point(55, 71);
this.ucRadarChart1.Name = "ucRadarChart1";
this.ucRadarChart2.Location = new System.Drawing.Point(394, 71);
this.ucRadarChart2.Name = "ucRadarChart2";
radarPosition19.MaxValue = 100D;
radarPosition19.Text = "Item1";
radarPosition20.MaxValue = 100D;
......@@ -295,13 +319,72 @@
radarPosition23.Text = "Item5";
radarPosition24.MaxValue = 100D;
radarPosition24.Text = "Item6";
this.ucRadarChart1.RadarPositions = new HZH_Controls.Controls.RadarPosition[] {
this.ucRadarChart2.RadarPositions = new HZH_Controls.Controls.RadarPosition[] {
radarPosition19,
radarPosition20,
radarPosition21,
radarPosition22,
radarPosition23,
radarPosition24};
this.ucRadarChart2.Size = new System.Drawing.Size(337, 336);
this.ucRadarChart2.SplitCount = 5;
this.ucRadarChart2.SplitEvenColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232)))));
this.ucRadarChart2.SplitOddColor = System.Drawing.Color.White;
this.ucRadarChart2.TabIndex = 0;
this.ucRadarChart2.Title = "有标题和填充颜色的图表";
this.ucRadarChart2.TitleColor = System.Drawing.Color.Black;
this.ucRadarChart2.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart2.UseRoundSplit = false;
//
// ucRadarChart1
//
this.ucRadarChart1.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))));
radarLine10.FillColor = null;
radarLine10.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine10.Name = "line0";
radarLine10.ShowValueText = false;
radarLine10.Values = new double[] {
88D,
23D,
94D,
83D,
21D,
90D};
radarLine11.FillColor = null;
radarLine11.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(156)))), ((int)(((byte)(39)))), ((int)(((byte)(176)))));
radarLine11.Name = "line1";
radarLine11.ShowValueText = false;
radarLine11.Values = new double[] {
89D,
34D,
71D,
89D,
53D,
65D};
this.ucRadarChart1.Lines = new HZH_Controls.Controls.RadarLine[] {
radarLine10,
radarLine11};
this.ucRadarChart1.Location = new System.Drawing.Point(55, 71);
this.ucRadarChart1.Name = "ucRadarChart1";
radarPosition25.MaxValue = 100D;
radarPosition25.Text = "Item1";
radarPosition26.MaxValue = 100D;
radarPosition26.Text = "Item2";
radarPosition27.MaxValue = 100D;
radarPosition27.Text = "Item3";
radarPosition28.MaxValue = 100D;
radarPosition28.Text = "Item4";
radarPosition29.MaxValue = 100D;
radarPosition29.Text = "Item5";
radarPosition30.MaxValue = 100D;
radarPosition30.Text = "Item6";
this.ucRadarChart1.RadarPositions = new HZH_Controls.Controls.RadarPosition[] {
radarPosition25,
radarPosition26,
radarPosition27,
radarPosition28,
radarPosition29,
radarPosition30};
this.ucRadarChart1.Size = new System.Drawing.Size(340, 336);
this.ucRadarChart1.SplitCount = 5;
this.ucRadarChart1.SplitEvenColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232)))));
......@@ -310,13 +393,87 @@
this.ucRadarChart1.Title = "";
this.ucRadarChart1.TitleColor = System.Drawing.Color.Black;
this.ucRadarChart1.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart1.UseRoundSplit = false;
//
// ucRadarChart6
//
this.ucRadarChart6.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(153)))), ((int)(((byte)(153)))), ((int)(((byte)(153)))));
radarLine12.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine12.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine12.Name = "上午";
radarLine12.ShowValueText = true;
radarLine12.Values = new double[] {
88D,
23D,
94D,
83D,
21D,
90D};
radarLine13.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine13.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(156)))), ((int)(((byte)(39)))), ((int)(((byte)(176)))));
radarLine13.Name = "下午";
radarLine13.ShowValueText = false;
radarLine13.Values = new double[] {
89D,
34D,
71D,
89D,
53D,
65D};
radarLine14.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(243)))), ((int)(((byte)(67)))), ((int)(((byte)(54)))));
radarLine14.LineColor = System.Drawing.Color.Green;
radarLine14.Name = "晚上";
radarLine14.ShowValueText = false;
radarLine14.Values = new double[] {
10D,
20D,
30D,
40D,
50D,
60D};
this.ucRadarChart6.Lines = new HZH_Controls.Controls.RadarLine[] {
radarLine12,
radarLine13,
radarLine14};
this.ucRadarChart6.Location = new System.Drawing.Point(737, 413);
this.ucRadarChart6.Name = "ucRadarChart6";
radarPosition31.MaxValue = 100D;
radarPosition31.Text = "SO2";
radarPosition32.MaxValue = 100D;
radarPosition32.Text = "NO2";
radarPosition33.MaxValue = 100D;
radarPosition33.Text = "CO";
radarPosition34.MaxValue = 100D;
radarPosition34.Text = "PM2.5";
radarPosition35.MaxValue = 100D;
radarPosition35.Text = "PM10";
radarPosition36.MaxValue = 100D;
radarPosition36.Text = "AQI";
this.ucRadarChart6.RadarPositions = new HZH_Controls.Controls.RadarPosition[] {
radarPosition31,
radarPosition32,
radarPosition33,
radarPosition34,
radarPosition35,
radarPosition36};
this.ucRadarChart6.Size = new System.Drawing.Size(337, 326);
this.ucRadarChart6.SplitCount = 5;
this.ucRadarChart6.SplitEvenColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232)))));
this.ucRadarChart6.SplitOddColor = System.Drawing.Color.White;
this.ucRadarChart6.TabIndex = 0;
this.ucRadarChart6.Title = "空气污染度";
this.ucRadarChart6.TitleColor = System.Drawing.Color.Black;
this.ucRadarChart6.TitleFont = new System.Drawing.Font("微软雅黑", 12F);
this.ucRadarChart6.UseRoundSplit = true;
//
// UCTestRadarChart
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.ucRadarChart6);
this.Controls.Add(this.ucRadarChart4);
this.Controls.Add(this.ucRadarChart3);
this.Controls.Add(this.ucRadarChart5);
this.Controls.Add(this.ucRadarChart2);
this.Controls.Add(this.ucRadarChart1);
this.Name = "UCTestRadarChart";
......@@ -331,6 +488,8 @@
private HZH_Controls.Controls.UCRadarChart ucRadarChart2;
private HZH_Controls.Controls.UCRadarChart ucRadarChart3;
private HZH_Controls.Controls.UCRadarChart ucRadarChart4;
private HZH_Controls.Controls.UCRadarChart ucRadarChart5;
private HZH_Controls.Controls.UCRadarChart ucRadarChart6;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!