public void TestSosdatSv9Si() { sw.Reset(); sw.Start(); for (int i = 0; i < kolRas; i++) { curM = new Mir(con); curM.maxEx = kolObektovMira * 3;//?????? curM.maxVxodi = curM.maxEx * 5; curM.SosdatObekti(kolObektovMira); curM.SosdatSlu4Svasi(); } sw.Stop(); testSosdatSv9siL = ((sw.ElapsedTicks - testSosdatObL) / kolRas); Ispit.mir = curM; }
public void TestSosdatOb() { sw.Reset(); sw.Start(); for (int i = 0; i < kolRas; i++) { curM = new Mir(con); curM.maxEx = kolObektovMira * 3;//?????? curM.maxVxodi = curM.maxEx * 5; curM.SosdatObekti(kolObektovMira); } sw.Stop(); testSosdatObL = sw.ElapsedTicks / kolRas; }
protected override void OnPaint(PaintEventArgs e) { Graphics gr=e.Graphics; constants con = new constants(); int kolObektovMira = 20; Mir curM = new Mir(con); curM.maxEx = kolObektovMira * 3;//?????? curM.maxVxodi = curM.maxEx * 5; curM.SosdatObekti(kolObektovMira); curM.SosdatSlu4Svasi(); DrawWorld dw = new DrawWorld(curM, gr); //gr.DrawLine(new Pen(Color.DarkBlue, 1), 10, 10, 400, 10); //gr.DrawLine(new Pen(Color.DarkBlue, 1), 10, 12, 400, 12); }
Point startP = new Point(30, 30); // верхний левый угол откуда будут рисоваться объекты мира #endregion Fields #region Constructors public DrawWorld(Mir mir, Graphics graf) { int y = 1; // условные координаты местоположения объекта int x = 1; gr = graf; curM = mir; curP = startP; int dlinaGrani = Convert.ToInt32(Math.Sqrt(mir.lastEx)); // длинна вертикальной грани(и горизонтальной, если получится равнобедренный квадрат) int sdvigGryas = (dlinaGrani + 1) * 2; // расстояние между объектами. задается таким образом, что бы можно было соеденить связями все объекты большей грани, так что бы между ними был хотя бы пиксель промежутка int sdvig = sdvigGryas + radiusO; // общий чистый сдвиг с учетом радиуса объекта // Create font and brush for objects Font obFont = new Font("Arial", 16); SolidBrush obBrush = new SolidBrush(Color.Black); for (int co = 0; co <= mir.lastEx; co++) { if (y > dlinaGrani) // если исчерпали лимит пересечения по вертикали - перемещаемся по горизонтали { y = 1; x = x + sdvig; } curP.X = startP.X + x; curP.Y = startP.Y + y; gr.DrawEllipse(new Pen(Color.DarkBlue, 2), curP.X, curP.Y, radiusO * 2, radiusO * 2); gr.DrawString(co.ToString(), obFont, obBrush, curP.X, curP.Y); y = y + sdvig; } }
//добавляет новый мир private void DobavitNoviiMir() { switch (curEtap) { case 1://добавляет новый мир и записывает ссылку на него в curM curM = new Mir(con); curM.maxEx = kolObektovMira * 3;//?????? curM.maxVxodi = curM.maxEx * 5; curM.SosdatObekti(kolObektovMira); curM.SosdatSlu4Svasi(); break; case 2: curM = Miri.Values[con.randObj.Next(curMindex)];//добавляет новый мир копией случайного мира от 0 до curMindex break; } }