Add Files of first version
This commit is contained in:
32
minpath.go
Normal file
32
minpath.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
)
|
||||
|
||||
func calcMin(maps []Map) float64 {
|
||||
var minDist float64 = math.MaxFloat64
|
||||
for _, m := range maps {
|
||||
for _, path := range m.paths {
|
||||
minDist = math.Min(minDist, calcMinPath(path, m.ponds))
|
||||
}
|
||||
}
|
||||
return minDist
|
||||
}
|
||||
|
||||
func calcMinPath(path Path, ponds []Pond) float64 {
|
||||
var minDist float64 = math.MaxFloat64
|
||||
for _, pond := range ponds {
|
||||
for _, vertex := range pond.vertices {
|
||||
cinitial := path.start.distance(path.end)
|
||||
ainitial := path.end.distance(vertex)
|
||||
c := path.start.distance(vertex)
|
||||
alpha := math.Acos((ainitial*ainitial - cinitial*cinitial - c*c) / (-2 * cinitial * c))
|
||||
height := math.Sin(alpha) * c
|
||||
minDist = math.Min(minDist, height)
|
||||
fmt.Printf("alpha: %f, c: %f, cinital: %f, ainitial: %F, h: %f\n", alpha, c, cinitial, ainitial, height)
|
||||
}
|
||||
}
|
||||
return minDist
|
||||
}
|
||||
Reference in New Issue
Block a user