private void GerarPontos(Ponto4D pontoCentral, int raioCirculo, int qtdPontos) { base.PontosRemoverTodos(); for (int i = 0; i < qtdPontos; i++) { var angulo = (qtdPontos == 72 ? i * 5 : i / 2); Ponto4D pontoCirculo = Matematica.GerarPtosCirculo(angulo, raioCirculo); Ponto4D pontoFinal = new Ponto4D(pontoCirculo.X + pontoCentral.X, pontoCirculo.Y + pontoCentral.Y, 0); base.PontosAdicionar(pontoFinal); } }
public Circulo(char rotulo, Objeto paiRef, int qntPontos, double raio, Ponto4D centro, Eixos eixos) : base(rotulo, paiRef) { this.qntPontos = qntPontos; this.raio = raio; Ponto4D p = new Ponto4D(); Ponto4D q = new Ponto4D(); double ang = 360 / qntPontos; int cont = 0; for (int i = 0; i < qntPontos; i++) { if (cont == 1) { q = base.PontosUltimo(); base.PontosAdicionar(new Ponto4D(centro.X, centro.Y, centro.Z)); } p = Matematica.GerarPtosCirculo(ang * i, raio); switch (eixos) { case Eixos.X_Y: base.PontosAdicionar(new Ponto4D(p.X + centro.X, p.Y + centro.Y, centro.Z)); break; case Eixos.X_Z: base.PontosAdicionar(new Ponto4D(p.X + centro.X, centro.Y, p.Y + centro.Z)); break; case Eixos.Y_Z: base.PontosAdicionar(new Ponto4D(centro.X, p.X + centro.Y, p.Y + centro.Z)); break; } cont++; if (cont == 2) { p = base.PontosUltimo(); base.PontosAdicionar(new Ponto4D(q.X, q.Y, q.Z)); base.PontosAdicionar(new Ponto4D(p.X, p.Y, p.Z)); cont = 0; } } }