You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
6 years ago | |
---|---|---|
cmd/recty | 7 years ago | |
vendor | 6 years ago | |
.gitignore | 7 years ago | |
LICENSE | 7 years ago | |
README.md | 7 years ago | |
doc.go | 7 years ago | |
line.go | 7 years ago | |
line_test.go | 7 years ago | |
point.go | 7 years ago | |
point_test.go | 7 years ago | |
rectangle.go | 7 years ago | |
rectangle_test.go | 7 years ago | |
triangle.go | 7 years ago | |
triangle_test.go | 7 years ago |
README.md
rect
Package rect implements rectangles and can determine when rectangles intersect, are contained, and when rectangles lie adjacent
usage
in cmd/recty/main.go is an example of how one could use this package.
r := rect.Rectangle{
P1: rect.Point{1, 1},
P2: rect.Point{1, 2},
P3: rect.Point{2, 1},
P4: rect.Point{2, 2},
}
defines a rectangle.
fmt.Println(r.IsRect())
would varify that the rectangle provided is a valid rectangle.
r1 := rect.Rectangle{
P1: rect.Point{1, 1},
P2: rect.Point{1, 2},
P3: rect.Point{2, 1},
P4: rect.Point{2, 2},
}
r2 := rect.Rectangle{
P1: rect.Point{1, 1},
P2: rect.Point{1, 2},
P3: rect.Point{2, 1},
P4: rect.Point{2, 2},
}
fmt.Println(rect.Intersection(r1, r2))
Running the above code would print out all intersection points of the two rectangles.
r3 := rect.Rectangle{
P1: rect.Point{0, 0},
P2: rect.Point{0, 3},
P3: rect.Point{3, 0},
P4: rect.Point{3, 3},
}
r4 := rect.Rectangle{
P1: rect.Point{2, 2},
P2: rect.Point{2, 3},
P3: rect.Point{3, 2},
P4: rect.Point{3, 3},
}
fmt.Println(rect.Adjacency(r3, r4))
This would return a boolean for whether r3 and r4 have an adjacent side.
r5 := rect.Rectangle{
P1: rect.Point{0, 0},
P2: rect.Point{0, 3},
P3: rect.Point{3, 0},
P4: rect.Point{3, 3},
}
r6 := rect.Rectangle{
P1: rect.Point{1, 1},
P2: rect.Point{1, 2},
P3: rect.Point{2, 1},
P4: rect.Point{2, 2},
}
fmt.Println(rect.Containment(r5, r6))
And finally, running rect.Containment(r5, r6)
would return true because r6
is contained inside of r5