package main
import (
"fmt"
"math"
)
type Point struct{ X, Y float64 }
type Path []Point
func (p Point) Distance(q Point) float64 {
return math.Hypot(q.X-p.X, q.Y-p.Y)
}
func (p Path) Distance() float64 {
sum := 0.0
for i := range p {
if i > 0 {
sum += p[i-1].Distance(p[i])
}
}
return sum
}
func main() {
perim := Path{
{1, 1},
{5, 1},
{5, 4},
{1, 1},
}
fmt.Println(perim.Distance())
}
# go run main.go
12
转载请注明:liutianfeng.com » 方法 – 求周长