コード例 #1
0
        static void DrawTriangle(FoxDraw foxDraw, double startx, double starty, double endx, double endy, int count)
        {
            foxDraw.StrokeColor(Colors.Black);
            foxDraw.FillColor(Colors.White);
            foxDraw.BackgroundColor(Colors.Gray);

            //var points = new List<Point>();
            //points.Add(new Point(startx, starty));
            //points.Add(new Point(endx, starty));
            //points.Add(new Point(startx + (endx - startx) / 2, endy));
            //foxDraw.DrawPolygon(points);

            //var points2 = new List<Point>();
            //points2.Add(new Point(startx + (endx - startx) / 2, starty));
            //points2.Add(new Point(startx + (endx - startx) / 4, starty + (endy - starty) / 2));
            //points2.Add(new Point(startx + (endx - startx) * 3 / 4, starty + (endy - starty) / 2));
            foxDraw.DrawPolygon(points);

            count--;
            if (count > 0)
            {
                DrawTriangle(foxDraw, startx + (endx - startx) / 2, starty, endx, starty + (endy - starty) / 2, count);
                DrawTriangle(foxDraw, startx, starty, startx + (endx - startx) / 2, starty + (endy - starty) / 2, count);
                DrawTriangle(foxDraw, startx + (endx - startx) / 4, starty + (endy - starty) / 2, startx + (endx - startx) * 3 / 4, endy, count);
            }
        }
コード例 #2
0
        public static void DrawTriangle(FoxDraw foxDraw, double origox, double origoy, double size, double count)
        {
            if (size > 0)
            {
                if (count < 10)
                {
                    foxDraw.StrokeColor(Colors.Black);
                    foxDraw.FillColor(Colors.White);

                    var points = new List <Point>();
                    points.Add(new Point(origox, origoy));
                    points.Add(new Point(origox + size, origoy));
                    points.Add(new Point(origox + (size / 2), origoy + (Math.Sqrt(3) / 2 * size)));

                    foxDraw.DrawPolygon(points);
                    count++;

                    DrawTriangle(foxDraw, origox, origoy, (size / 2), count);
                    DrawTriangle(foxDraw, origox + (size / 2), origoy, (size / 2), count);
                    DrawTriangle(foxDraw, origox + (size / 4), (origoy + (Math.Sqrt(3) / 2 * size) / 2), (size / 2), count);
                }
                else
                {
                    return;
                }
            }
            else
            {
                return;
            }
        }
コード例 #3
0
        public static void DrawTriangles(FoxDraw triangles, int size, int x, int y, int level, Color color, Random random)
        {
            if (level > 0)
            {
                triangles.StrokeColor(color);
                Point top   = new Point(x + size / 2, y);
                Point right = new Point(x + size / 3 * 4, y + size / 2);
                Point left  = new Point(x + size / 4, y + size / 2);


                triangles.DrawLine(x + size / 2, y, x + size / 4 * 3, y + size / 2);
                triangles.DrawLine(x + size / 4 * 3, y + size / 2, x + size / 4, y + size / 2);
                triangles.DrawLine(x + size / 4, y + size / 2, x + size / 2, y);

                FoxDraw.DrawPolygon(top, right, left);


                // triangles.FillColor(RandomColor(random));

                // TODO: nagy haromszog

                triangles.DrawLine(x, y, x + size, y);
                triangles.DrawLine(x + size, y, x + size / 2, y + size);
                triangles.DrawLine(x + size / 2, y + size, x, y);

                DrawTriangles(triangles, size / 2, x, y, level - 1, color, random);
                DrawTriangles(triangles, size / 2, x + size / 2, y, level - 1, color, random);
                DrawTriangles(triangles, size / 2, x + size / 4, y + size / 2, level - 1, color, random);
            }
        }
コード例 #4
0
        private void DrawOneTrianle(Point startPoint, double sizeOfTriangle)
        {
            double halfOfSide       = sizeOfTriangle / 2;
            double heightOfTriangle = Math.Sqrt(Math.Pow(sizeOfTriangle, 2) - Math.Pow(halfOfSide, 2));
            var    points           = new List <Point>();

            points.Add(new Point(startPoint.X, startPoint.Y));
            points.Add(new Point(startPoint.X + halfOfSide, startPoint.Y + heightOfTriangle));
            points.Add(new Point(startPoint.X - halfOfSide, startPoint.Y + heightOfTriangle));
            foxDraw.StrokeColor(Colors.Red);
            foxDraw.FillColor(Colors.Transparent);
            foxDraw.DrawPolygon(points);
        }
コード例 #5
0
        public MainWindow()
        {
            InitializeComponent();
            FoxDraw foxDraw = new FoxDraw(canvas);

            foxDraw.StrokeColor(Colors.Black);
            foxDraw.FillColor(Colors.White);
            float level       = 7;
            float inputWidth  = (float)canvas.Width;
            float inputHeight = (float)canvas.Height;
            float xStart      = 0;
            float xEnd        = 0;

            var pointsOfTriangle = new List <Point>();

            TriangleDrawer(foxDraw, level, inputWidth, inputHeight, xStart, xEnd);
            Console.ReadLine();
        }
コード例 #6
0
        static void TriangleDraw(FoxDraw foxDraw)
        {
            int startPointW = 0;
            int startPointH = 420;
            int endPointW   = 420;
            int endPointH   = 420;

            foxDraw.StrokeColor(Colors.Black);
            for (int i = 0; i < 21; i++)
            {
                foxDraw.DrawLine(startPointW, startPointH, endPointW, endPointH);
                startPointW += 10;
                startPointH -= 20;
                endPointW   -= 10;
                endPointH   -= 20;
            }
            startPointW = 0;
            startPointH = 420;
            endPointW   = 210;
            endPointH   = 0;
            for (int i = 0; i < 21; i++)
            {
                foxDraw.DrawLine(startPointW, startPointH, endPointW, endPointH);
                startPointW += 20;
                endPointW   += 10;
                endPointH   += 20;
            }
            startPointW = 420;
            startPointH = 420;
            endPointW   = 210;
            endPointH   = 0;
            for (int i = 0; i < 21; i++)
            {
                foxDraw.DrawLine(startPointW, startPointH, endPointW, endPointH);
                startPointW -= 20;
                endPointW   -= 10;
                endPointH   += 20;
            }
        }
コード例 #7
0
        public void TrianglesInTriangles()
        {
            var foxDraw = new FoxDraw(canvas);

            foxDraw.StrokeColor(Colors.Black);
            foxDraw.DrawLine(canvas.Width / 2, 0, canvas.Width, canvas.Height / 2);
            foxDraw.StrokeColor(Colors.Black);
            foxDraw.DrawLine(canvas.Width, canvas.Height / 2, 0, canvas.Height / 2);
            foxDraw.StrokeColor(Colors.Black);
            foxDraw.DrawLine(0, canvas.Height / 2, canvas.Width / 2, 0);

            for (int i = 15; i < 300; i += 15)
            {
                foxDraw.StrokeColor(Colors.Black);
                foxDraw.DrawLine(canvas.Width / 2 - i, 0 + i, canvas.Width - i * 2, canvas.Height / 2);

                foxDraw.StrokeColor(Colors.Black);
                foxDraw.DrawLine(canvas.Width / 2 + i, 0 + i, 0 + i * 2, canvas.Height / 2);

                foxDraw.StrokeColor(Colors.Black);
                foxDraw.DrawLine(canvas.Width / 2 - i, 0 + i, canvas.Width / 2 + i, 0 + i);
            }
        }
コード例 #8
0
 public void DrawRectangle(FoxDraw foxDraw)
 {
     foxDraw.StrokeColor(Colors.Black);
     foxDraw.FillColor(Colors.Transparent);
     foxDraw.DrawRectangle(0.25 * foxDraw.Canvas.Width, 0.25 * foxDraw.Canvas.Height, 0.25 * foxDraw.Canvas.Width, 0.25 * foxDraw.Canvas.Height, 15);
 }