public int CompareTo(object obj) { if (obj == null) { return(1); } oneTVS other = obj as oneTVS; if (other != null) { return(this._loadNumber.CompareTo(other._loadNumber)); } else { throw new ArgumentException("Object is not a Temperature"); } }
/// <summary> /// Функция для нарисовки координатной линии сетки /// </summary> public void DrawGrid(int goal) { oneTVS temp = new oneTVS(); oneTVS goalTvs = new oneTVS(); goalTvs = this.Zona[goal]; //int[] a = new int[4]; //= { {0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 }, { 0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 } }; // int[] tempY = { 0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 }; //int i = 15; int val = new int(); Pen myDefaultPen = new Pen(Brushes.White); myDefaultPen.DashStyle = DashStyle.Dot; myDefaultPen.Width = 1; Font myDefaultFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, 14, FontStyle.Regular); foreach (int item in faza[this.ScreanAngle]) { temp = this.getTVSByTVS360Number(item); g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); switch (this.ScreanAngle) { case 0: val = temp.Cord.X; break; case 1: val = temp.Cord.Y; break; case 2: val = temp.Cord.X; break; case 3: val = temp.Cord.Y; break; default: break; } if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y)) { if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Red, 0, temp.CanvasCord.Y - 14); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.Red, 0, temp.CanvasCord.Y - 14); } } else { if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.WhiteSmoke, 0, temp.CanvasCord.Y - 14); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.WhiteSmoke, 0, temp.CanvasCord.Y - 14); } } } ///Для прорисовки верхний координат /// int fazV = this.ScreanAngle - 1; if (fazV < 0) { fazV = 3; } foreach (int item in faza[fazV]) { temp = this.getTVSByTVS360Number(item); g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40); //g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); switch (fazV) { case 0: val = temp.Cord.X; break; case 1: val = temp.Cord.Y; break; case 2: val = temp.Cord.X; break; case 3: val = temp.Cord.Y; break; default: break; } if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y)) { if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Red, temp.CanvasCord.X - 14, 0); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.Red, temp.CanvasCord.X - 14, 0); } } else { if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.WhiteSmoke, temp.CanvasCord.X - 14, 0); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.WhiteSmoke, temp.CanvasCord.X - 14, 0); } } } /////Для прорисовки вертикальи пройдемся по всем пятым точкам ///// //int[] tempX1 = { 102, 115, 127, 138, 148, 149, 157, 156, 158, 159, 160, 161, 162, 156 }; //foreach (int item in tempX1) //{ // temp = this.getTVSByTVS360Number(item); // g.DrawLine(myDefaultPen, temp.Hex[1].X, temp.Hex[1].Y, temp.Hex[1].X, 40); //} //int[] tempX0 = { 148, 157, 158, 159, 160, 161, 162, 156 }; //foreach (int item in tempX0) //{ // temp = this.getTVSByTVS360Number(item); // g.DrawLine(myDefaultPen, temp.Hex[0].X, temp.Hex[0].Y, temp.Hex[0].X, 40); //} //int[] tempX5 = { 162, 156, 147, 137, 126, 114 }; //foreach (int item in tempX5) //{ // temp = this.getTVSByTVS360Number(item); // g.DrawLine(myDefaultPen, temp.Hex[5].X, temp.Hex[5].Y, temp.Hex[5].X, 40); //} /////ПОдпишим циферки оси X ///// //int stepX = this.getTVSByTVS360Number(115).Hex[1].X - this.getTVSByTVS360Number(102).Hex[1].X; //int startX = this.getTVSByTVS360Number(102).Hex[1].X - 20; //for (int ii = 16; ii < 43; ii++) //{ // if (ii % 2 == 0) // { // g.DrawString(ii.ToString(), myDefaultFont, Brushes.WhiteSmoke, startX,0); // } // startX += stepX; //} pic.Refresh(); }
/// <summary> /// Прорисовка осей. Goal - нужен чтобы выделять цели на координатной сетке /// </summary> /// <param name="goal">Индекс ТВС Куда будет загружена следующая</param> public void DrawGrid(int goal) { oneTVS temp = new oneTVS(); ///Получим реальный объект целефой ТВС oneTVS goalTvs = new oneTVS(); if (goal < 162) { goalTvs = this.Zona[goal]; } else { goalTvs = this.Zona[162]; } int val = new int(); Pen myDefaultPen = new Pen(Brushes.Black); myDefaultPen.DashStyle = DashStyle.Dot; myDefaultPen.Width = 1; Pen myDefaultPenGoal = new Pen(Brushes.Red); myDefaultPenGoal.DashStyle = DashStyle.Dot; myDefaultPenGoal.Width = 1; Font myDefaultFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, MyConst.MyAxisFontSize, FontStyle.Regular); Font myDefaultGoalFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, MyConst.MyAxisFontGoalSize, FontStyle.Regular); ///При каждой конкретно повороте окна нужно рисовать либо справа либо слева, ///чтобы не накладывалорсь на стол ДРИ ///Ну чтоже, слева уже рисует всегд, сделаем, так ///чтобы СЛЕВА рисовал только в ДВУХ НУжних случаях: /// if ((this.ScreanAngle == 2) || (this.ScreanAngle == 3)) { foreach (int item in faza[this.ScreanAngle]) { temp = this.getTVSByTVS360Number(item); //if ((goalTvs.Cord.X == temp.Cord.X)||(goalTvs.Cord.Y == temp.Cord.Y)) //{ // g.DrawLine(myDefaultPenGoal, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); //} //else //{ // g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); //} switch (this.ScreanAngle) { case 2: val = temp.Cord.X; break; //case 1: // val = temp.Cord.Y; // break; //case 2: // val = temp.Cord.X; // break; case 3: val = temp.Cord.Y; break; default: break; } if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y)) { g.DrawLine(myDefaultPenGoal, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, 0, temp.CanvasCord.Y - 14); } else { g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, 0, temp.CanvasCord.Y - 14); } } else { g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, 0, temp.CanvasCord.Y - 14); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, 0, temp.CanvasCord.Y - 14); } } } } else //если нужно чертить справа { int fazV = this.ScreanAngle + 2; if (fazV > 3) { fazV = 0; } foreach (int item in faza[fazV]) { temp = this.getTVSByTVS360Number(item); //if ((goalTvs.Cord.X == temp.Cord.X) || (goalTvs.Cord.Y == temp.Cord.Y)) //{ // g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y); //} //else //{ // g.DrawLine(myDefaultPen, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y); //} switch (this.ScreanAngle) { case 0: val = temp.Cord.X; break; case 1: val = temp.Cord.Y; break; case 2: val = temp.Cord.X; break; case 3: val = temp.Cord.Y; break; default: break; } if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y)) { g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, this.pic.Width - 40, temp.CanvasCord.Y - 14); } else { g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, this.pic.Width - 40, temp.CanvasCord.Y - 14); } } else { g.DrawLine(myDefaultPen, temp.CanvasCord.X + this.FA, temp.CanvasCord.Y, this.pic.Width - 40, temp.CanvasCord.Y); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, this.pic.Width - 40, temp.CanvasCord.Y - 14); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, this.pic.Width - 40, temp.CanvasCord.Y - 14); } } } } //ЭТИ УСЛОВИЯ КОГДА НУЖНО ЧЕРТИТЬ ВВЕРХУ if ((this.ScreanAngle == 0) || (this.ScreanAngle == 3)) { ///Для прорисовки верхний координат /// ///fazV - эта махинация нужна чтобы неперебивать массив констант из периферийных ТВС, а его заюзать но сдругой фазой для верхних координат int fazV = this.ScreanAngle - 1; if (fazV < 0) { fazV = 3; } foreach (int item in faza[fazV]) { temp = this.getTVSByTVS360Number(item); //if ((goalTvs.Cord.X == temp.Cord.X) || (goalTvs.Cord.Y == temp.Cord.Y)) //{ // g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40); //} //else //{ // g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40); //} switch (fazV) { case 0: val = temp.Cord.X; break; case 1: val = temp.Cord.Y; break; case 2: val = temp.Cord.X; break; case 3: val = temp.Cord.Y; break; default: break; } if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y)) { g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, 0); } else { g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, 0); } } else { g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y - this.FA, temp.CanvasCord.X, 40); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, 0); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, 0); } } } } // If screanAngle 0 or 1 else { //Если нужн чертить внизу ///Для прорисовки верхний координат /// ///fazV - эта махинация нужна чтобы неперебивать массив констант из периферийных ТВС, а его заюзать но сдругой фазой для верхних координат int fazV = this.ScreanAngle + 1; if (fazV > 3) { fazV = 0; } foreach (int item in faza[fazV]) { temp = this.getTVSByTVS360Number(item); //if ((goalTvs.Cord.X == temp.Cord.X) || (goalTvs.Cord.Y == temp.Cord.Y)) //{ // g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40); //} //else //{ // g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40); //} switch (fazV) { case 0: val = temp.Cord.X; break; case 1: val = temp.Cord.Y; break; case 2: val = temp.Cord.X; break; case 3: val = temp.Cord.Y; break; default: break; } if ((val == goalTvs.Cord.X) || (val == goalTvs.Cord.Y)) { g.DrawLine(myDefaultPenGoal, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, this.pic.Width - 40); } else { g.DrawString(val.ToString(), myDefaultGoalFont, Brushes.Red, temp.CanvasCord.X - 15, this.pic.Width - 40); } } else { g.DrawLine(myDefaultPen, temp.CanvasCord.X, temp.CanvasCord.Y + this.FA, temp.CanvasCord.X, this.pic.Width - 40); if (val < 10) { g.DrawString("0" + val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, this.pic.Width - 40); } else { g.DrawString(val.ToString(), myDefaultFont, Brushes.Black, temp.CanvasCord.X - 15, this.pic.Width - 40); } } } } pic.Refresh(); }
/// <summary> /// Функция для нарисовки координатной линии сетки /// </summary> public void DrawGrid() { // --- Coordinate Paint-- // --------- Height (Left) //Brush.Color:=Self.Color; //Font.size:=f;A //Font.Name:='BankGothic Lt BT'; //if Font.size > 12 then Font.size:=12; //// -- labels -- //for i :=1 to 9 do //TextOut(0,Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),'0'+IntToStr(i)); // int Ystart = this.getTVSByTVS360Number(157).CanvasCord.Y; // int Ystep = (this.getTVSByTVS360Number(140).CanvasCord.Y - this.getTVSByTVS360Number(157).CanvasCord.Y)/2; // for (int i = 1; i < 16; i++) //{ // g.DrawString(i.ToString(), System.Windows.Forms.Control.DefaultFont, Brushes.Black, 0, Ystart); // Ystart += Ystep; //} oneTVS temp = new oneTVS(); int[] tempY = { 0, 6, 15, 25, 36, 48, 61, 75, 88, 102, 115, 127, 138, 148, 157 }; int i = 15; Pen myDefaultPen = new Pen(Brushes.Green); //myDefault.Color = Color.Green; myDefaultPen.DashStyle = DashStyle.Dot; myDefaultPen.Width = 3; Font myDefaultFont = new Font(System.Windows.Forms.Control.DefaultFont.FontFamily, 14, FontStyle.Bold); foreach (int item in tempY) { temp = this.getTVSByTVS360Number(item); g.DrawLine(myDefaultPen, 40, temp.CanvasCord.Y, temp.CanvasCord.X - this.FA, temp.CanvasCord.Y); if (i < 10) { g.DrawString("0" + i.ToString(), myDefaultFont, Brushes.DarkGreen, 0, temp.CanvasCord.Y - 14); } else { g.DrawString(i.ToString(), myDefaultFont, Brushes.DarkGreen, 0, temp.CanvasCord.Y - 14); } i--; } ///Для прорисовки вертикальи пройдемся по всем пятым точкам /// int[] tempX1 = { 102, 115, 127, 138, 148, 149, 157, 156, 158, 159, 160, 161, 162, 156 }; foreach (int item in tempX1) { temp = this.getTVSByTVS360Number(item); g.DrawLine(myDefaultPen, temp.Hex[1].X, temp.Hex[1].Y, temp.Hex[1].X, 40); // if (i < 10) // { // g.DrawString("0" + i.ToString(), myDefaultFont, Brushes.Green, 0, temp.CanvasCord.Y - 10); // } // else // g.DrawString(i.ToString(), myDefaultFont, Brushes.Green, 0, temp.CanvasCord.Y - 10); // i++; //} } int[] tempX0 = { 148, 157, 158, 159, 160, 161, 162, 156 }; foreach (int item in tempX0) { temp = this.getTVSByTVS360Number(item); g.DrawLine(myDefaultPen, temp.Hex[0].X, temp.Hex[0].Y, temp.Hex[0].X, 40); } int[] tempX5 = { 162, 156, 147, 137, 126, 114 }; foreach (int item in tempX5) { temp = this.getTVSByTVS360Number(item); g.DrawLine(myDefaultPen, temp.Hex[5].X, temp.Hex[5].Y, temp.Hex[5].X, 40); } ///ПОдпишим циферки оси X /// int stepX = this.getTVSByTVS360Number(115).Hex[1].X - this.getTVSByTVS360Number(102).Hex[1].X; int startX = this.getTVSByTVS360Number(102).Hex[1].X - 20; for (int ii = 16; ii < 43; ii++) { if (ii % 2 == 0) { g.DrawString(ii.ToString(), myDefaultFont, Brushes.DarkGreen, startX, 0); } startX += stepX; } // g.DrawString("центр", System.Windows.Forms.Control.DefaultFont, Brushes.Black, 0, this.Fcenter); //for i :=10 to 15 do //TextOut(0,Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),IntToStr(i)); //for (int i = 10; i < 16; i++) //{ // g.DrawString(i.ToString(), System.Windows.Forms.Control.DefaultFont, Brushes.Black, 0, (int)(this.Fcenter - Math.Round(this.FA * (12 - i * 1.5)) - (int)((float)this.FA / (float)2))); //} //// -- lines -- //for i :=1 to 15 do //begin //case i > 8 of // False: // begin // MoveTo(round(TextWidth('00')),Fcentre-round(FA*(12-i*1.5))); // LineTo(Fcentre -(8+i)*FStep,Fcentre-round(FA*(12-i*1.5))); // end; // True: // begin // MoveTo(round(TextWidth('00')),Fcentre-round(FA*(12-i*1.5))); // LineTo(Fcentre +(i-24)*FStep,Fcentre-round(FA*(12-i*1.5))); // end; //end; // if ( (Fcentre -(15)*FStep )> (round(1.5*TextWidth('00')))) then // begin // MoveTo(round(1.5*TextWidth('00')),Fcentre); // LineTo(Fcentre -(15)*FStep,Fcentre); // end; //end; // --------- Width (top) ---- //for i:=0 to 13 do // TextOut(Fcentre -FStep*(13-2*i)-(Canvas.TextWidth('42')div 2) ,0,IntToStr(2*i+16)); //for (int i = 0; i < 14; i++) //{ // g.DrawString((2*i+16).ToString(), System.Windows.Forms.Control.DefaultFont, Brushes.Black, this.Fcenter -this.Fstep*(5-2*i)-1, 0); //} //for i:=0 to 2 do //begin //MoveTo(Fcentre -FStep*(13-2*i),TextHeight('0')); //LineTo(Fcentre -FStep*(13-2*i),Fcentre -FA*(4+3*i)); //end; //MoveTo(Fcentre -FStep*(7),TextHeight('0')); //LineTo(Fcentre -FStep*(7),Fcentre -FA*10); //for i:=1 to 6 do //begin //MoveTo(Fcentre -FStep*(7-2*i),TextHeight('0')); //LineTo(Fcentre -FStep*(7-2*i),Fcentre -FA*12); //end; //MoveTo(Fcentre +FStep*7,TextHeight('0')); //LineTo(Fcentre +FStep*7,Fcentre -FA*10); //for i:=0 to 2 do //begin //MoveTo(Fcentre +FStep*(9+ 2*i),TextHeight('0')); //LineTo(Fcentre +FStep*(9+ 2*i),Fcentre -FA*(10-3*i)); //end; //// Height (Right) //// -- labels -- //for i :=1 to 9 do // TextOut(Width-TextWidth('00'),Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),'0'+IntToStr(i)); //for i:=10 to 15 do // TextOut(Width-TextWidth('00') ,Fcentre-round(FA*(12-i*1.5))-(fA DIV 2),IntToStr(i)); //// -- lines -- //for i :=1 to 15 do //begin //case i > 8 of // False: // begin // MoveTo(Width-TextWidth('00'),Fcentre-round(FA*(12-i*1.5))); // LineTo(Fcentre +(8+i)*FStep,Fcentre-round(FA*(12-i*1.5))); // end; // True: // begin // MoveTo(Width-TextWidth('00'),Fcentre-round(FA*(12-i*1.5))); // LineTo(Fcentre +(24-i)*FStep,Fcentre-round(FA*(12-i*1.5))); // end; //end; // MoveTo(Width-TextWidth('00'),Fcentre); // LineTo(Fcentre +(15)*FStep,Fcentre); //end; pic.Refresh(); }