Пример #1
0
        private void ReexibePoligono()
        {
            pontos.Clear();
            ClearTelaPoligono();
            Poligono poli = Lpoli.Find(x => x.Rotulo == ((Poligono)CbPolignos.SelectedItem).Rotulo);

            foreach (Point p in poli.pontosAtuais)
            {
                dgvPontos.Rows.Add(p.X.ToString());
                dgvPontos.Rows[dgvPontos.Rows.Count - 1].Cells[0].Value = p.X.ToString();
                dgvPontos.Rows[dgvPontos.Rows.Count - 1].Cells[1].Value = p.Y.ToString();

                pontos.Add(p);
                if (pontos.Count == 2)
                {
                    Primitivas.DecliveDDA(pontos[0], pontos[1], pbxPoligonos);
                    pontos[0] = pontos[1];
                    pontos.RemoveAt(1);
                }
            }
            if (poli.Fechado == true) //Se o poligono estiver completo, a ligação do Pi com Pf é feita
            {
                Primitivas.DecliveDDA(poli.pontosAtuais[0], poli.pontosAtuais[poli.pontosAtuais.Count - 1], pbxPoligonos);
            }
        }
Пример #2
0
        private void BtNovoPoligno_Click(object sender, EventArgs e)
        {
            pontos.Clear();
            Poligono p = new Poligono(CountPoli++);

            Lpoli.Add(p);
            CbPolignos.Items.Add(p);
            CbPolignos.SelectedIndex = CbPolignos.Items.Count - 1;
            ClearTelaPoligono();
        }
Пример #3
0
        private void BtEspY_Click(object sender, EventArgs e)
        {
            Poligono pTemp = ((Poligono)CbPolignos.SelectedItem);
            double   Mx = 0, My = 0;

            for (int i = 0; i < pTemp.pontos.Count; i++)
            {
                Mx += pTemp.pontos[i].X;
                My += pTemp.pontos[i].Y;
            }
            Mx = Mx / pTemp.pontos.Count;
            My = My / pTemp.pontos.Count;
            ((Poligono)CbPolignos.SelectedItem).espelhamentoY(new Point((int)Mx, (int)My));
            ReexibePoligono();
        }
Пример #4
0
 private void BtRotacao_Click(object sender, EventArgs e)
 {
     if (rbOrigem.Checked)
     {
         ((Poligono)CbPolignos.SelectedItem).Rotacao(double.Parse(tbRotacao.Text), new Point(0, 0), 'o');
     }
     else
     {
         Poligono pTemp = ((Poligono)CbPolignos.SelectedItem);
         double   Mx = 0, My = 0;
         for (int i = 0; i < pTemp.pontos.Count; i++)
         {
             Mx += pTemp.pontos[i].X;
             My += pTemp.pontos[i].Y;
         }
         Mx = Mx / pTemp.pontos.Count;
         My = My / pTemp.pontos.Count;
         ((Poligono)CbPolignos.SelectedItem).Rotacao(double.Parse(tbRotacao.Text), new Point((int)Mx, (int)My), 'e');
     }
     ReexibePoligono();
 }