コード例 #1
0
        private void selectGrainButton_Click(object sender, EventArgs e)
        {
            if (dualPhaseMouseClickOn)
            {
                for (int i = 0; i < board.GetLength(0); i++)
                {
                    for (int j = 0; j < board.GetLength(1); j++)
                    {
                        if (structureGrains.TryGetValue(board[i, j].Grain, out Grain newGrain))
                        {
                            board[i, j] = new DrawableCell(i, j, cellSize, newGrain);
                        }
                        else if (!board[i, j].Grain.IsInclusion())
                        {
                            board[i, j] = new DrawableCell(i, j, cellSize);
                        }
                    }
                }

                DrawGrains();
                ResetState();
                dualPhaseMouseClickOn  = false;
                selectGrainButton.Text = "Select grains";
            }
            else
            {
                dualPhaseMouseClickOn  = true;
                selectGrainButton.Text = "Done";
            }
        }
コード例 #2
0
 private void ClearGrains()
 {
     for (var i = 0; i < board.GetLength(0); i++)
     {
         for (var j = 0; j < board.GetLength(1); j++)
         {
             board[i, j] = new DrawableCell(i, j, cellSize);
         }
     }
     DrawGrains();
 }
コード例 #3
0
        public DrawableCell[,] Import(string path, int cellsize)
        {
            var bitmap = new Bitmap(Image.FromFile(path, true));
            var board  = new DrawableCell[bitmap.Width, bitmap.Height];

            for (var i = 0; i < board.GetLength(0); i++)
            {
                for (var j = 0; j < board.GetLength(1); j++)
                {
                    board[i, j] = new DrawableCell(i, j, cellsize, DrawableCell.GetGrain(bitmap.GetPixel(i, j)));
                }
            }

            return(board);
        }
コード例 #4
0
        public DrawableCell[,] Import(string path, int cellsize)
        {
            var content = File.ReadAllLines(path);
            var header  = content.First().Split('\t');

            var board = new DrawableCell[int.Parse(header[0]), int.Parse(header[1])];

            for (int i = 1; i < content.Length; i++)
            {
                var lineSplit = content[i].Split('\t');
                int x         = int.Parse(lineSplit[0]);
                int y         = int.Parse(lineSplit[1]);
                int grainId   = int.Parse(lineSplit[2]);
                board[x, y] = new DrawableCell(x, y, cellsize, new Grain(grainId));
            }

            return(board);
        }