private void PlotLines(Population pop, Color color) { Pen penBest = new Pen(color, 4); int genA, genB; Individuo best = pop.GetBest(); for (int i = 0; i < ConfigurationGA.tamCromossomo; i++) { if (i < ConfigurationGA.tamCromossomo - 1) { genA = best.GetGene(i); genB = best.GetGene(i + 1); } else { genA = best.GetGene(i); genB = best.GetGene(0); } int[] vetA = TablePoints.getCoordenadas(genA); int[] vetB = TablePoints.getCoordenadas(genB); g.DrawLine(penBest, vetA[0], vetA[1], vetB[0], vetB[1]); } }
private void BtnSalvar_Click(object sender, EventArgs e) { //Criar "Dados" para colocar os conteudos dentro dar get nos dados depois ... SaveFileDialog saveFileDialog1 = new SaveFileDialog(); //define o titulo saveFileDialog1.Title = "Salvar Arquivo Texto"; //Define as extensões permitidas saveFileDialog1.Filter = "tsp File|.tsp"; //define o indice do filtro saveFileDialog1.FilterIndex = 0; //Atribui um valor vazio ao nome do arquivo saveFileDialog1.FileName = "arq_" + lbQtdeCidades.Text; //Define a extensão padrão como .txt saveFileDialog1.DefaultExt = ".tsp"; //define o diretório padrão saveFileDialog1.InitialDirectory = @"c:\"; //restaura o diretorio atual antes de fechar a janela saveFileDialog1.RestoreDirectory = true; //exibe aviso se o usuario informar um caminho que nao existe saveFileDialog1.CheckPathExists = true; //Abre a caixa de dialogo e determina qual botão foi pressionado DialogResult resultado = saveFileDialog1.ShowDialog(); PlotPoints(); if (pop != null && count_exec != 0) { PlotLines(pop, Color.Blue); } //Se o ousuário pressionar o botão Salvar if (resultado == DialogResult.OK) { //Cria um stream usando o nome do arquivo FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create); StreamWriter writer = new StreamWriter(fs); //Colocar informacoes dos dados... writer.WriteLine("Name: TC_AG "); writer.WriteLine("Type: TSP "); writer.WriteLine("DIMENSION: " + pointCount); writer.WriteLine("EDGE_WEIGHT_TYPE: EUC_2D"); writer.WriteLine("NODE_COORD_SECTION"); for (int i = 0; i < TablePoints.pointCount; i++) { int[] coo = TablePoints.getCoordenadas(i); writer.Write(i + 1 + " "); writer.Write(coo[0] + " "); writer.Write(coo[1] + "\r\n"); } writer.WriteLine("EOF"); writer.Close(); } }
private void PlotPoints() { //Vericando se a tabela possui pontos if (TablePoints.pointCount > 0) { for (int i = 0; i < TablePoints.pointCount; i++) { //Criar um lapis Pen blackPen = new Pen(Color.Red, 3); //Vetor de coordenadas (x, y) (0, 1) int[] coo = TablePoints.getCoordenadas(i); Rectangle rect = new Rectangle(coo[0] - 5, coo[1] - 5, 10, 10); g.DrawEllipse(blackPen, rect); g.DrawString((i + 1).ToString(), new Font("Arial Black", 11), Brushes.Black, coo[0] + 3, coo[1]); g.DrawString("X:" + coo[0].ToString(), new Font("Arial Black", 6), Brushes.Black, coo[0] - 20, coo[1] - 25); g.DrawString("Y:" + coo[1].ToString(), new Font("Arial Black", 6), Brushes.Black, coo[0] - 20, coo[1] - 18); } } }