Esempio n. 1
0
 public void SetLockOnGrains(int sizeX, int sizeY, Cell[,] cellStateTable, List <int> notRemovableIds, string microstructureType, Bitmap bitmap, PictureBox pictureBox1)
 {
     for (int i = 0; i < sizeX; i++)
     {
         for (int j = 0; j < sizeY; j++)
         {
             if (notRemovableIds.Contains(cellStateTable[i, j].Id))
             {
                 cellStateTable[i, j].IsLocked = true;
                 if (microstructureType == "DualPhase")
                 {
                     cellStateTable[i, j].CellColor = Color.DeepPink;
                 }
             }
         }
     }
     bitmap            = _bitmapService.UpdateBitmap(bitmap, cellStateTable);
     pictureBox1.Image = bitmap;
     pictureBox1.Show();
     pictureBox1.Update();
 }
Esempio n. 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            var sizeX       = int.Parse(SizeX.Text);
            var sizeY       = int.Parse(SizeY.Text);
            var propability = int.Parse(Probability.Text);
            var z           = 0;

            if (NotRemovableIds.Count != 0 && MicrostructureType.Text == "DualPhase" ||
                MicrostructureType.Text == "Subculture")
            {
                _gainService.SetLockOnGrains(sizeX, sizeY, _cellStateTable, NotRemovableIds, MicrostructureType.Text, _bitmap, pictureBox1);
            }

            if (NeighberhoodType.Text == "VonNeuman")
            {
                while (!IsEnd() && _isGrainExist && z != 500)
                {
                    for (int i = 0; i < sizeX; i++)
                    {
                        for (int j = 0; j < sizeY; j++)
                        {
                            if (!_cellStateTable[i, j].IsLocked)
                            {
                                _cellStateTable = _neumanService.AddNeighbor(i, j, _cellStateTable[i, j].CellColor, _cellStateTable, sizeX, sizeY);
                            }
                        }
                    }
                    _bitmap           = _bitmapService.UpdateBitmap(_bitmap, _cellStateTable);
                    pictureBox1.Image = _bitmap;
                    pictureBox1.Show();
                    pictureBox1.Update();
                    _cellStateTable = _gainService.RemoveUpdateLockOnCellsPropability(_cellStateTable, sizeX, sizeY);
                    z++;
                }
            }

            if (NeighberhoodType.Text == "Propability")
            {
                while (!IsEnd() && _isGrainExist && z != 500)
                {
                    for (int i = 0; i < sizeX; i++)
                    {
                        for (int j = 0; j < sizeY; j++)
                        {
                            _cellStateTable = _propabilityService.AddNeighbor(i, j, _cellStateTable, sizeX, sizeY, propability, NotRemovableIds);
                        }
                    }
                    _bitmap           = _bitmapService.UpdateBitmap(_bitmap, _cellStateTable);
                    pictureBox1.Image = _bitmap;
                    pictureBox1.Show();
                    pictureBox1.Update();
                    _cellStateTable = _gainService.RemoveUpdateLockOnCellsPropability(_cellStateTable, sizeX, sizeY);
                    z++;
                }
            }
        }