Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region GetPoints Methods
- private Tuple<Point, Point> GetPointsInfLine(int x1, int y1, int x2, int y2)
- {
- return GetPointsInfLine(new Point(x1, y1), new Point(x2, y2));
- }
- private Tuple<Point, Point> GetPointsInfLine(Point p1, Point p2)
- {
- var a = p1.Y - p2.Y;
- var b = p2.X - p1.X;
- var c = p1.X * p2.Y - p1.Y * p2.X;
- return GetPointsInfLine(a, b, c);
- }
- private Tuple<Point, Point> GetPointsInfLine(int a, int b, int c)
- {
- var height = picture.Height;
- var width = picture.Width;
- var centerX = picture.Width / 2;
- var centerY = picture.Height / 2;
- if (b == 0)
- {
- return new Tuple<Point, Point>(new Point(centerX + (int) (-c * scale / a), 0),
- new Point(centerX + (int) (-c * scale / a), height));
- }
- if (a == 0)
- {
- return new Tuple<Point, Point>(new Point(0, centerY - (int) (-c * scale / b)),
- new Point(width, centerY - (int) (-c * scale / b)));
- }
- var leftX = 0 - centerX;
- var leftY = centerY + (int) ((a * leftX + c * scale) / b);
- leftX = 0;
- var rightX = width - centerX;
- var rightY = centerY + (int) ((a * rightX + c * scale) / b);
- rightX = width;
- return new Tuple<Point, Point>(new Point(leftX, leftY), new Point(rightX, rightY));
- }
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement