Пример #1
0
        public static List <PointF> GenererPoints(ConfigurationRevolution p_configurationRevolution)
        {
            if (p_configurationRevolution is null)
            {
                throw new ArgumentNullException(nameof(p_configurationRevolution));
            }

            double        conversionDegRad = Math.PI / 180.0;
            PointF        dernierPoint     = p_configurationRevolution.PositionDepart;
            double        angle            = 0;
            int           longueur         = p_configurationRevolution.LongueurDepart;
            List <PointF> pointsLignes     = new List <PointF>()
            {
                dernierPoint
            };

            for (int numeroLigne = 0; numeroLigne < p_configurationRevolution.NombreLignes; numeroLigne++)
            {
                PointF point = new PointF()
                {
                    X = (float)(dernierPoint.X + Math.Cos(angle * conversionDegRad) * longueur),
                    Y = (float)(dernierPoint.Y + Math.Sin(angle * conversionDegRad) * longueur)
                };

                pointsLignes.Add(point);

                angle        = (360 + angle + p_configurationRevolution.PasAngle) % 360;
                longueur    += p_configurationRevolution.PasLongueur;
                dernierPoint = point;
            }

            return(pointsLignes);
        }
Пример #2
0
        public ConfigurationRevolution EtablirConfiguration()
        {
            ConfigurationRevolution cr = new ConfigurationRevolution()
            {
                Angle          = (int)nudAngle.Value,
                LongueurDepart = (int)nudLongueurDepart.Value,
                NombreLignes   = (int)nudNombreLignes.Value,
                Pas            = (int)nudPas.Value,
                PositionDepart = new Point(pCanvas.Width / 2, pCanvas.Height / 2)
            };

            return(cr);
        }
Пример #3
0
        public ConfigurationRevolution EtablirConfiguration()
        {
            ConfigurationRevolution cr = new ConfigurationRevolution()
            {
                PasAngle            = (int)nudPasAngle.Value,
                LongueurDepart      = (int)nudLongueurDepart.Value,
                NombreLignes        = (int)nudNombreLignes.Value,
                PasLongueur         = (int)nudPasLongueur.Value,
                PositionDepart      = new Point(pCanvas.Width / 2, pCanvas.Height / 2),
                NombreIterationKock = (int)nudNombreIterationsFloconsKoch.Value
            };

            return(cr);
        }
Пример #4
0
        private void Dessiner(ConfigurationRevolution p_configurationRevolution, Graphics p_graphics, Pen p_pen)
        {
            if (p_configurationRevolution is null)
            {
                throw new ArgumentNullException(nameof(p_configurationRevolution));
            }

            if (p_graphics is null)
            {
                throw new ArgumentNullException(nameof(p_graphics));
            }

            List <PointF> pointsLignes = DessinRevolution.GenererPoints(p_configurationRevolution);

            p_graphics.DrawLines(p_pen, pointsLignes.ToArray());
        }
Пример #5
0
        private void DessinerKoch(ConfigurationRevolution p_configurationRevolution, Graphics p_graphics, Pen p_pen)
        {
            if (p_configurationRevolution is null)
            {
                throw new ArgumentNullException(nameof(p_configurationRevolution));
            }

            if (p_graphics is null)
            {
                throw new ArgumentNullException(nameof(p_graphics));
            }

            List <PointF> pointsLignes = DessinRevolution.GenererPoints(p_configurationRevolution);

            pointsLignes = DessinRevolution.SubDiviserKock(pointsLignes, p_configurationRevolution.NombreIterationKock);
            pointsLignes = DessinRevolution.Recentrer(pointsLignes, pCanvas.Width, pCanvas.Height);

            p_graphics.DrawLines(p_pen, pointsLignes.ToArray());
        }