Example #1
0
func (m *moon) sun(λ, β unit.Angle, Δ float64, earth *pp.V87Planet) (l0, b0 unit.Angle) {
	λ0, _, R := solar.ApparentVSOP87(earth, m.jde)
	ΔR := unit.Angle(Δ / (R * base.AU))
	λH := λ0 + math.Pi + ΔR.Mul(β.Cos()*(λ0-λ).Sin())
	βH := ΔR * β
	return m.lib(λH, βH)
}
Example #2
0
func (m *moon) sun(λ, β, Δ float64, earth *pp.V87Planet) (l0, b0 float64) {
	λ0, _, R := solar.ApparentVSOP87(earth, m.jde)
	ΔR := Δ / (R * base.AU)
	λH := λ0 + math.Pi + ΔR*math.Cos(β)*math.Sin(λ0-λ)
	βH := ΔR * β
	return m.lib(λH, βH)
}
Example #3
0
func eq2(y int, e *pp.V87Planet, q unit.Angle, c []float64) float64 {
	J0 := base.Horner(float64(y)*.001, c...)
	for {
		λ, _, _ := solar.ApparentVSOP87(e, J0)
		c := 58 * (q - λ).Sin() // (27.1) p. 180
		J0 += c
		if math.Abs(c) < .000005 {
			break
		}
	}
	return J0
}