方法 – 求周长

经典案例 Liemer_Lius 137℃

 

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 » 方法 – 求周长

喜欢 (0)

评论已关闭。