public void Desenhar()
        {
            GL.PointSize(10);

            Ponto4D ultimoPonto = null;

            for (var i = 0; i < this.pontos.Count; i++)
            {
                Ponto4D ponto = this.pontos[i];

                GL.Begin(PrimitiveType.Points);
                GL.Color3(i == this.pontoSelecionado ? Color.Red : Color.Black);
                GL.Vertex2(ponto.X, ponto.Y);
                GL.End();

                if (ultimoPonto != null)
                {
                    segReta = new SegReta($"{i}", new Ponto4D(ultimoPonto.X, ultimoPonto.Y), new Ponto4D(ponto.X, ponto.Y), Color.Cyan, 3);
                    segReta.Desenhar();
                }

                ultimoPonto = ponto;
            }

            this.DesenharSpline();
        }
        private void DesenharSpline()
        {
            Ponto4D ultimoPontoSpline = null;

            foreach (Ponto4D pontoSpline in this.pontosSpline)
            {
                if (ultimoPontoSpline != null)
                {
                    segReta = new SegReta("Spline", new Ponto4D(ultimoPontoSpline.X, ultimoPontoSpline.Y), new Ponto4D(pontoSpline.X, pontoSpline.Y), Color.Yellow, 3);
                    segReta.Desenhar();
                }
                ultimoPontoSpline = pontoSpline;
            }
        }
        /// <summary>
        /// Cria um círculo na cena
        /// </summary>
        /// <param name="raio">Raio</param>
        /// <param name="cor">Cor dos pontos do círculo</param>
        /// <param name="deslocamentoX">Caso necessário deslocar no eixo X utilziar um inteiro</param>
        /// <param name="deslocamentoY">Caso necessário deslocar no eixo Y utilziar um inteiro</param>
        /// <param name="primitivaTamanho">Tamanho dos pontos</param>
        public Circulo(string rotulo, double raio, Color cor, int quantidadePontos = 72, int deslocamentoX = 0, int deslocamentoY = 0, int primitivaTamanho = 4, int angulo = 5)
            : base(rotulo, cor, primitivaTamanho, PrimitiveType.Points)
        {
            _raio             = raio;
            _deslocamentoX    = deslocamentoX;
            _deslocamentoY    = deslocamentoY;
            _quantidadePontos = quantidadePontos;
            _angulo           = angulo;
            pontoQuadrado1    = new Ponto4D(deslocamentoX, deslocamentoY - 3);
            pontoQuadrado2    = new Ponto4D(deslocamentoX, deslocamentoY + 3);
            segReta           = new SegReta("Q", pontoQuadrado1, pontoQuadrado2, Color.Blue, 3);

            pontoQuadrado1 = new Ponto4D(deslocamentoX, deslocamentoY - 3);
            pontoQuadrado2 = new Ponto4D(deslocamentoX, deslocamentoY + 3);
            segReta        = new SegReta("Q", pontoQuadrado1, pontoQuadrado2, Color.Blue, 3);

            GerarCirculo();
        }