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(); }
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++; } } }