Ejemplo n.º 1
0
        /// <summary>
        /// Dibuja los triángulos
        /// </summary>
        /// <returns>La colección de triángulos</returns>
        public Sierpinski[] GetTriangles()
        {
            Point2d MidAB = MidPoint(A, B),
                    MidBC = MidPoint(B, C),
                    MidAC = MidPoint(A, C);
            Sierpinski t1 = new Sierpinski(A, MidAB, MidAC),
                       t2 = new Sierpinski(B, MidAB, MidBC),
                       t3 = new Sierpinski(C, MidAC, MidBC);

            t1.depth = depth + 1;
            t2.depth = depth + 1;
            t3.depth = depth + 1;
            return(new Sierpinski[] { t1, t2, t3 });
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Genera los triangulos hasta llegar al nivel de profundidad deseado.
 /// </summary>
 /// <param name="t">El triángulo.</param>
 /// <param name="ents">La colección de entidades dibujadas.</param>
 /// <param name="maxDepth">La profundidad máxima.</param>
 public void Draw(Sierpinski t, ref List <Entity> ents, int maxDepth = 5)
 {
     if (t.depth > maxDepth)
     {
         return;
     }
     else
     {
         ents.Add(t.Triangle);
         foreach (Sierpinski tri in t.GetTriangles())
         {
             Draw(tri, ref ents, maxDepth);
         }
     }
 }
Ejemplo n.º 3
0
        public void DrawTriangle()
        {
            Point3d insPt;
            Point3d endPt;
            int     order;

            if (Lab2.Selector.Point("Punto de inserción", out insPt) &&
                Lab2.Selector.Point("El tamaño del triangulo", out endPt, insPt) &&
                Lab2.Selector.Integer("El orden del triangulo", out order, 3))
            {
                Sierpinski    triangle = new Sierpinski(insPt, insPt.DistanceTo(endPt));
                List <Entity> ents     = new List <Entity>();
                triangle.Draw(triangle, ref ents, order);
                TransactionWrapper tr = new TransactionWrapper();
                tr.Run(DrawGeometry, ents.ToArray());
                Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("Total de triangulos", ents.Count);
            }
        }