collinear_points/
collinear_points.rs

1use algods::utils::{BruteCollinearPoints, Point};
2
3fn main() {
4    let mut points = Vec::<Point<isize>>::new();
5    for x in -1isize..2isize {
6        for y in -1isize..2isize {
7            points.push(Point::<isize>::init(x, y));
8        }
9    }
10    points.push(Point::<isize>::init(2, 2));
11    points.push(Point::<isize>::init(2, -2));
12    points.push(Point::<isize>::init(2, 0));
13    let mut brute_force = BruteCollinearPoints::<isize>::init(points);
14    println!("{:?}", brute_force);
15    // finding all segments of at least 4 collinear points (duplicates are possible)
16    let segments = brute_force.segments();
17    println!("{:#?}", segments);
18}