public Form1() { InitializeComponent(); this.WindowState = FormWindowState.Maximized; imagePrincp = new Bitmap(1409, 537); imagePrincipal = imagePrincp; pontAtual = new Ponto(); pontAtual.XInicio = -99999.0; pontAtual.XFinal = -1.0; cbOpcoesLinha.SelectedIndex = 0; cbFormaSelecionada.SelectedIndex = 2; cbOpcoesCirculos.SelectedIndex = 0; imagens = new PilhaRedo(); poligAtual = null; inicial = null; atual = null; picBoxPrincp.Focus(); resetaPontos(); listPoli = new List <Poligono>(); ultimoselecionado = 0; pintar = false; ckFlooddFill.Enabled = false; ckScanLine.Enabled = false; txX.Text = "" + 100; txY.Text = "" + 100; }
public NoRedo(Ponto info, NoRedo prox, string metodo, Poligono poligon) { this.info = info; this.prox = prox; this.metodo = metodo; this.Poligon = poligon; }
private void PicBoxPrincp_MouseClick(object sender, MouseEventArgs e) { if (!pintar) { if (cbFormaSelecionada.SelectedIndex == 3) { if (poligAtual == null) { poligAtual = new Poligono(); imagens.inserir(poligAtual, "POLIGONO"); } criaPoligono(e); } else { if (pontAtual.XInicio == -99999.0) { pontAtual.XInicio = e.X; pontAtual.YInicio = e.Y; } else if (pontAtual.XFinal == -1.0) { pontAtual.XFinal = e.X; pontAtual.YFinal = e.Y; chamaCriaFormas2(); } picBoxPrincp.Focus(); } } else { if (listPoli.Count > 0) { if (ckFlooddFill.Checked) { listPoli[(listPoli.Count - 1) - cbPoligonos.SelectedIndex].floodFill((int)e.X, (int)e.Y, imagePrincp); picBoxPrincp.Image = imagePrincp; } else if (ckScanLine.Checked) { listPoli[(listPoli.Count - 1) - cbPoligonos.SelectedIndex].carregaListaET(imagePrincp); picBoxPrincp.Image = imagePrincp; } } } }
private void recriaPoligonoViewPort(Poligono aux) { for (int i = 0; i < aux.PontosViewPort.Count; i++) { if (i >= 1) { pontAtual.transferePonto2(aux.PontosViewPort[i - 1], aux.PontosViewPort[i]); chamaCriaFormas("VIEWPORT", pontAtual); } } pontAtual.transferePonto2(aux.PontosViewPort[aux.PontosViewPort.Count - 1], aux.PontosViewPort[0]); chamaCriaFormas("VIEWPORT", pontAtual); }
private void recriaPoligono(Poligono aux) { for (int i = 0; i < aux.PontosAtuais.Count; i++) { if (i >= 1) { pontAtual.transferePonto2(aux.PontosAtuais[i - 1], aux.PontosAtuais[i]); chamaCriaFormas("DDA", pontAtual); } } pontAtual.transferePonto2(aux.PontosAtuais[aux.PontosAtuais.Count - 1], aux.PontosAtuais[0]); chamaCriaFormas("DDA", pontAtual); }
public void inicializarPolig() { poligAtual = null; atual = null; inicial = null; }
private void aplicaTransformacoes(Poligono poli) { Ponto2 pontRotacao = new Ponto2(); double transX, transY; double escalaX, escalaY; double angulo; double cisaX, cisaY; double refleX, refleY; pontRotacao.X = 0; pontRotacao.Y = 0; if (rbCentro.Checked) { pontRotacao.X = poli.retornaCX(); pontRotacao.Y = poli.retornaCY(); } try { transX = double.Parse(txXtrans.Text); transY = double.Parse(txYtrans.Text); } catch (Exception e) { transX = 0.0; transY = 0.0; } try { escalaX = double.Parse(txXescala.Text); escalaY = double.Parse(txYescala.Text); } catch (Exception e) { escalaX = 1; escalaY = 1; } try { angulo = double.Parse(txAngulo.Text); } catch (Exception e) { angulo = 0.0; } try { cisaX = double.Parse(txShearX.Text); } catch (Exception e) { cisaX = 0.0; }; try { cisaY = double.Parse(txShearY.Text); } catch (Exception e) { cisaY = 0.0; }; try { refleX = double.Parse(txReflexaoX.Text); } catch (Exception e) { refleX = 0; }; try { refleY = double.Parse(txReflexaoY.Text); } catch (Exception e) { refleY = 0; }; poli.inicializarMatriz(); if (refleX != 0) { poli.reflexaoX(refleX); } if (refleY != 0) { poli.reflexaoY(refleY); } if (cisaX != 0 || cisaY != 0) { poli.shearXY(cisaX, cisaY); } if (angulo != 0) { if (pontRotacao.X == 0 && pontRotacao.Y == 0) { poli.rotacao(angulo); } else { poli.rotacao(angulo, pontRotacao.X, pontRotacao.Y); } } if (escalaX != 0 || escalaY != 0) { escalaY = escalaY == 0 ? 1 : escalaY; escalaX = escalaX == 0 ? 1 : escalaX; if (pontRotacao.X == 0 && pontRotacao.Y == 0) { poli.escala(escalaX, escalaY); } else { poli.escala(escalaX, escalaY, pontRotacao.X, pontRotacao.Y); } } if (transX != 0 || transY != 0) { poli.translacao(transX, transY); } poli.aplicarMA(); }