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); } }
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; } }
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); } }
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); }
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(); }
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; } }
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); } }
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); }