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 Ponto2 retirar() { Ponto2 aux = inicio.P; inicio = inicio.Prox; return(aux); }
private void criaPoligono(MouseEventArgs e) { int pos; if (inicial == null) { inicial = new Ponto2(e.X, e.Y); poligAtual.addPonto(inicial); poligAtual.addPontoAtual(new Ponto2(e.X, e.Y)); } else { if ((e.X < poligAtual.getPontoOriginalX(0) - 5 || e.X > poligAtual.getPontoOriginalX(0) + 5) || (e.Y < poligAtual.getPontoOriginalY(0) - 5 || e.Y > poligAtual.getPontoOriginalY(0) + 5)) { atual = new Ponto2(e.X, e.Y); poligAtual.addPonto(atual); poligAtual.addPontoAtual(new Ponto2(e.X, e.Y)); pos = poligAtual.PontosOriginais.IndexOf(atual) - 1; pontAtual.transferePonto2(poligAtual.PontosOriginais[pos], atual); chamaCriaFormas2(); atual = null; } else { pontAtual.transferePonto2(poligAtual.PontosOriginais[poligAtual.PontosOriginais.Count - 1] , poligAtual.PontosOriginais[0]); chamaCriaFormas2(); pontAtual.resetaPontos(); atualizaComboBox(); inicializarPolig(); } } }
public NoPilha(Ponto2 p, NoPilha prox) { this.p = p; this.prox = prox; }
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(); }
public void inserir(Ponto2 pont) { NoPilha novo = new NoPilha(pont, inicio); inicio = novo; }