26 lines
415 B
Go
26 lines
415 B
Go
package types
|
|
|
|
type Edge struct {
|
|
From Coords
|
|
To Coords
|
|
}
|
|
|
|
func (e *Edge) Midpoint() Coords {
|
|
var dx, dy, minX, minY int
|
|
if e.From.X > e.To.X {
|
|
minX = e.To.X
|
|
dx = e.From.X - e.To.X
|
|
} else {
|
|
minX = e.From.X
|
|
dx = e.To.X - e.From.X
|
|
}
|
|
|
|
if e.From.Y > e.To.Y {
|
|
minY = e.To.Y
|
|
dy = e.From.Y - e.To.Y
|
|
} else {
|
|
minY = e.From.Y
|
|
dy = e.To.Y - e.From.Y
|
|
}
|
|
return Coords{minX + dx / 2, minY + dy / 2}
|
|
} |