public static void DrawGrid(Point startPointXaxis, string directionX, Point startPointYaxis, string directionY, FoxDraw foxDraw, Canvas canvas) { double totalWidth = canvas.Width; double totalHeight = canvas.Height; int stepLength = 10; int stepsLengthX = stepLength; int stepLengthY = stepLength; if (directionX == "to-left") { stepsLengthX = -stepLength; } if (directionY == "to-top") { stepLengthY = -stepLength; } foxDraw.DrawLine(startPointXaxis, startPointYaxis); for (int i = 0; i < totalWidth / 2; i += Math.Abs(stepLengthY)) { startPointXaxis.X += stepsLengthX; startPointYaxis.Y += stepLengthY; foxDraw.DrawLine(startPointXaxis, startPointYaxis); } }
public static void SquareInTheCenter(double squareSize, FoxDraw foxDraw, Point center) { foxDraw.DrawRectangle(center.X, center.Y, squareSize, squareSize); }
public static void DrawToCenterFrom(double x, double y, Point centre, FoxDraw foxDraw) { foxDraw.StrokeColor(Colors.Green); foxDraw.DrawLine(new Point(x, y), centre); }
public MainWindow() { InitializeComponent(); var foxDraw = new FoxDraw(canvas); // create a line drawing function that takes 2 parameters: // the x and y coordinates of the line's starting point // and draws a line from that point to the center of the canvas. // fill the canvas with lines from the edges, every 20 px, to the center. double startX = 0; double startY = 0; Random rng = new Random(); //var centrePosition = new Point(rng.Next(0, 700), rng.Next(0, 700)); var centrePosition = new Point(canvas.Width / 2, canvas.Height / 2); AllLinesToCenter(startX, startY, centrePosition); void AllLinesToCenter(double x, double y, Point centre) { //var centre = new Point(canvas.Width / 2, canvas.Height / 2); double startPositionX = x; double startPositionY = y; var startPoint = new Point(0, 0); //Top Row for (int i = 0; i < canvas.Width / 20; i++) { startPositionX = i * 20; startPoint = new Point(startPositionX, startPositionY); foxDraw.DrawLine(startPoint, centre); } //Right Row for (int j = 0; j < canvas.Height / 20; j++) { startPositionY = j * 20; startPoint = new Point(startPositionX, startPositionY); foxDraw.DrawLine(startPoint, centre); } //Row bottom for (int k = 0; k < canvas.Width / 20; k++) { startPositionX = k * 20; startPoint = new Point(startPositionX, startPositionY); foxDraw.DrawLine(startPoint, centre); } //Row Left for (int j = 0; j < canvas.Height / 20; j++) { startPositionY = j * 20; startPoint = new Point(0, startPositionY); foxDraw.DrawLine(startPoint, centre); } } }
public MainWindow() { InitializeComponent(); var foxDraw = new FoxDraw(canvas); int angle = 0; DrawPyramidWithWidth(-50, 5); void DrawPyramidWithWidth(int triangleSize, int pyramidWidth) { double centreX = ((canvas.Width / 2) - (triangleSize * pyramidWidth) / 2); //Triangle Points Dictionary <string, Point> TrianglePoints = new Dictionary <string, Point>(); var left = new Point(centreX, canvas.Height); var top = new Point(left.X + triangleSize * Math.Cos(angle + Math.PI / 3), left.Y + triangleSize * Math.Sin(angle + Math.PI / 3)); var right = new Point(left.X + triangleSize * Math.Cos(angle), left.Y + triangleSize * Math.Sin(angle)); void resetXpositions() { left.X = centreX; top.X = left.X + triangleSize * Math.Cos(angle + Math.PI / 3); right.X = left.X + triangleSize * Math.Cos(angle); } void drawOneTriangle() { foxDraw.DrawLine(left, top); foxDraw.DrawLine(top, right); foxDraw.DrawLine(right, left); } void shiftTriangleUp() { left.Y += triangleSize; top.Y += triangleSize; right.Y += triangleSize; } void shiftTriangleRightBy(double multiplier) { left.X += (triangleSize * multiplier); top.X += (triangleSize * multiplier); right.X += (triangleSize * multiplier); } void drawAmountOfTriangles(int number) { for (int j = 1; j < number; j++) { shiftTriangleRightBy(1); drawOneTriangle(); } } for (int i = 1; i < pyramidWidth; i++) { shiftTriangleUp(); resetXpositions(); //shiftTriangleRightBy(1); drawAmountOfTriangles(pyramidWidth - i); } } }
public static void DrawFourRectangles(double rectangleWidth, double rectangleHeight, FoxDraw foxDraw, Point center, Color[] colors) { for (int i = 0; i < 4; i++) { double newCenterX = center.X; double newCenterY = center.Y; if (i > 0) { newCenterX += (rectangleWidth * i); } foxDraw.FillColor(colors[i]); foxDraw.DrawRectangle(newCenterX, newCenterY, rectangleWidth, rectangleHeight); } }
public static void DrawThreeSquaresFrom(double x, double y, FoxDraw foxDraw) { double squareSize = 50; foxDraw.DrawRectangle(x, y, squareSize, squareSize); }