From 41e0f404b55abe75ce5034ddd726b3b3165084c3 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 16 Jun 2023 16:35:27 +0800 Subject: [PATCH] =?UTF-8?q?:fire:=20=E7=A7=BB=E9=99=A4=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E4=B8=8D=E5=90=88=E7=90=86=E7=9A=84=E5=BD=A2=E7=8A=B6=20shape?= =?UTF-8?q?=20=E5=8F=8A=20shape/point?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/g2d/g2d_test.go | 17 -------- utils/g2d/shape/point.go | 31 --------------- utils/g2d/shape/shape.go | 86 ---------------------------------------- utils/g2d/shape_test.go | 30 -------------- 4 files changed, 164 deletions(-) delete mode 100644 utils/g2d/g2d_test.go delete mode 100644 utils/g2d/shape/point.go delete mode 100644 utils/g2d/shape/shape.go delete mode 100644 utils/g2d/shape_test.go diff --git a/utils/g2d/g2d_test.go b/utils/g2d/g2d_test.go deleted file mode 100644 index 2da8e5e..0000000 --- a/utils/g2d/g2d_test.go +++ /dev/null @@ -1,17 +0,0 @@ -package g2d - -import ( - "fmt" - "github.com/kercylan98/minotaur/utils/geometry" - "testing" -) - -func TestPositionIntToXY(t *testing.T) { - pos := geometry.CoordinateToPos(9, 7, 8) - fmt.Println(pos) - fmt.Println(geometry.PosToCoordinate(9, pos)) - - fmt.Println(geometry.CoordinateToPos(65000, 61411, 158266)) - fmt.Println(geometry.PosToCoordinate(65000, 10287351411)) - -} diff --git a/utils/g2d/shape/point.go b/utils/g2d/shape/point.go deleted file mode 100644 index 0604789..0000000 --- a/utils/g2d/shape/point.go +++ /dev/null @@ -1,31 +0,0 @@ -package shape - -func NewPoint(x, y int) Point { - return Point{x, y} -} - -func NewPointWithArray(arr [2]int) Point { - return Point{arr[0], arr[1]} -} - -func NewPointWithArrays(arrays ...[2]int) []Point { - var points = make([]Point, len(arrays), len(arrays)) - for i, arr := range arrays { - points[i] = NewPointWithArray(arr) - } - return points -} - -type Point [2]int - -func (slf Point) GetX() int { - return slf[0] -} - -func (slf Point) GetY() int { - return slf[1] -} - -func (slf Point) GetXY() (int, int) { - return slf[0], slf[1] -} diff --git a/utils/g2d/shape/shape.go b/utils/g2d/shape/shape.go deleted file mode 100644 index 788ecc3..0000000 --- a/utils/g2d/shape/shape.go +++ /dev/null @@ -1,86 +0,0 @@ -package shape - -func NewShape[Mark any](mark Mark, points ...Point) *Shape[Mark] { - shape := &Shape[Mark]{ - maxX: -1, - maxY: -1, - points: map[int]map[int]Point{}, - mark: mark, - } - shape.AddPoints(points...) - return shape -} - -// Shape 2D形状定义 -type Shape[Mark any] struct { - maxX int - maxY int - points map[int]map[int]Point - mark Mark -} - -func (slf *Shape[Mark]) AddPoints(points ...Point) { - for _, point := range points { - slf.AddPoint(point) - } -} - -func (slf *Shape[Mark]) AddPoint(point Point) { - x, y := point.GetXY() - if x < 0 || y < 0 { - panic("only positive integers are allowed for shape point positions") - } - if x > slf.maxX { - slf.maxX = x - } - if y > slf.maxY { - slf.maxY = y - } - ys, exist := slf.points[x] - if !exist { - ys = map[int]Point{} - slf.points[x] = ys - } - ys[y] = point -} - -func (slf *Shape[Mark]) GetPoints() []Point { - var points []Point - for _, m := range slf.points { - for _, point := range m { - points = append(points, point) - } - } - return points -} - -func (slf *Shape[Mark]) GetMaxX() int { - return slf.maxX -} - -func (slf *Shape[Mark]) GetMaxY() int { - return slf.maxY -} - -func (slf *Shape[Mark]) GetMaxXY() (int, int) { - return slf.maxX, slf.maxY -} - -func (slf *Shape[Mark]) GetMark() Mark { - return slf.mark -} - -func (slf *Shape[Mark]) String() string { - var str string - for y := 0; y <= slf.maxY; y++ { - for x := 0; x <= slf.maxX; x++ { - if _, exist := slf.points[x][y]; exist { - str += "1" - } else { - str += "0" - } - } - str += "\r\n" - } - return str -} diff --git a/utils/g2d/shape_test.go b/utils/g2d/shape_test.go deleted file mode 100644 index ce3a0bf..0000000 --- a/utils/g2d/shape_test.go +++ /dev/null @@ -1,30 +0,0 @@ -package g2d - -import ( - "fmt" - "testing" -) - -func TestGetShapeCoverageArea(t *testing.T) { - for _, xy := range GetExpressibleRectangleBySize(2, 3, 2, 2) { - for y := 0; y < xy[1]+1; y++ { - for x := 0; x < xy[0]+1; x++ { - fmt.Print("0", " ") - } - fmt.Println() - } - fmt.Println() - } -} - -func TestGetExpressibleRectangleBySize(t *testing.T) { - for _, xy := range GetExpressibleRectangleBySize(3, 3, 2, 2) { - for y := 0; y < xy[1]+1; y++ { - for x := 0; x < xy[0]+1; x++ { - fmt.Print("0", " ") - } - fmt.Println() - } - fmt.Println() - } -}