Loading icosahedron/icosahedron.go +24 −9 Original line number Diff line number Diff line Loading @@ -79,17 +79,32 @@ func Create() (*Icosahedron, error) { return &i, nil } func calculateMidPoint(va Vertex, vb Vertex, r float64) (Vertex, error) { var vr Vertex var vt Vertex func (v Vertex) add(a Vertex) Vertex { var r Vertex r.x = v.x + a.x r.y = v.y + a.y r.z = v.z + a.z return r } func (v Vertex) sub(a Vertex) Vertex { var r Vertex r.x = v.x - a.x r.y = v.y - a.y r.z = v.z - a.z return r } vt.x = vb.x - va.x vt.y = vb.y - va.y vt.z = vb.z - va.z func (v Vertex) scale(s float64) Vertex { var r Vertex r.x = v.x * s r.y = v.y * s r.z = v.z * s return r } vr.x = va.x + (vt.x * r) vr.y = va.y + (vt.y * r) vr.z = va.z + (vt.z * r) func calculateMidPoint(va Vertex, vb Vertex, r float64) (Vertex, error) { vr := va.add(vb.sub(va).scale(r)) return vr, nil } Loading Loading
icosahedron/icosahedron.go +24 −9 Original line number Diff line number Diff line Loading @@ -79,17 +79,32 @@ func Create() (*Icosahedron, error) { return &i, nil } func calculateMidPoint(va Vertex, vb Vertex, r float64) (Vertex, error) { var vr Vertex var vt Vertex func (v Vertex) add(a Vertex) Vertex { var r Vertex r.x = v.x + a.x r.y = v.y + a.y r.z = v.z + a.z return r } func (v Vertex) sub(a Vertex) Vertex { var r Vertex r.x = v.x - a.x r.y = v.y - a.y r.z = v.z - a.z return r } vt.x = vb.x - va.x vt.y = vb.y - va.y vt.z = vb.z - va.z func (v Vertex) scale(s float64) Vertex { var r Vertex r.x = v.x * s r.y = v.y * s r.z = v.z * s return r } vr.x = va.x + (vt.x * r) vr.y = va.y + (vt.y * r) vr.z = va.z + (vt.z * r) func calculateMidPoint(va Vertex, vb Vertex, r float64) (Vertex, error) { vr := va.add(vb.sub(va).scale(r)) return vr, nil } Loading