let s = (-s1.y * (p1.x - p3.x) + s1.x * (p1.y - p3.y)) / denomimator;
let t = ( s2.x * (p1.y - p3.y) - s2.y * (p1.x - p3.x)) / denomimator;
let s = (-s1.y * (p1.x - p3.x) + s1.x * (p1.y - p3.y)) / denomimator;
let t = ( s2.x * (p1.y - p3.y) - s2.y * (p1.x - p3.x)) / denomimator;
let mut points = vec!(point!(p.x as isize, p.y as isize));
let mut i = point!(0, 0);
while i.x < n.x || i.y < n.y {
let mut points = vec!(point!(p.x as isize, p.y as isize));
let mut i = point!(0, 0);
while i.x < n.x || i.y < n.y {