예제 #1
0
func ExampleV87Planet_Position() {
	// Example 32.a, p. 219
	jd := julian.CalendarGregorianToJD(1992, 12, 20)
	p, err := pp.LoadPlanet(pp.Venus, "")
	if err != nil {
		fmt.Println(err)
		return
	}
	l, b, r := p.Position(jd)
	fmt.Printf("L = %s\n",
		base.DecSymAdd(fmt.Sprintf("%+.5f", l*180/math.Pi), '°'))
	fmt.Printf("B = %s\n",
		base.DecSymAdd(fmt.Sprintf("%+.5f", b*180/math.Pi), '°'))
	fmt.Printf("R = %.6f AU\n", r)
	// Meeus results:
	// L = +26°.11428
	// B = -2°.62070
	// R = 0.724603 AU
	// Answers below seem close enough.

	// Output:
	// L = +26°.11412
	// B = -2°.62060
	// R = 0.724602 AU
}
예제 #2
0
파일: coord_test.go 프로젝트: pjh59/meeus
func ExampleEcliptic_EqToEcl() {
	// Example 13.a, p. 95.
	eq := &coord.Equatorial{
		base.NewRA(7, 45, 18.946).Rad(),
		base.NewAngle(false, 28, 1, 34.26).Rad(),
	}
	obl := coord.NewObliquity(23.4392911 * math.Pi / 180)
	ecl := new(coord.Ecliptic).EqToEcl(eq, obl)
	λStr := base.DecSymAdd(fmt.Sprintf("%.5f", ecl.Lon*180/math.Pi), '°')
	βStr := base.DecSymAdd(fmt.Sprintf("%+.6f", ecl.Lat*180/math.Pi), '°')
	fmt.Println("λ =", λStr)
	fmt.Println("β =", βStr)
	// Output:
	// λ = 113°.21563
	// β = +6°.684170
}
예제 #3
0
func ExampleDecSymAdd() {
	formatted := "1.25"
	fmt.Println("Standard decimal symbol:", formatted)
	fmt.Println("Degree units, non combining decimal point: ",
		base.DecSymAdd(formatted, '°'))
	// Output:
	// Standard decimal symbol: 1.25
	// Degree units, non combining decimal point:  1°.25
}
예제 #4
0
파일: coord_test.go 프로젝트: pjh59/meeus
func ExampleHorizontal_EqToHz() {
	// Example 13.b, p. 95.
	eq := &coord.Equatorial{
		RA:  base.NewRA(23, 9, 16.641).Rad(),
		Dec: base.NewAngle(true, 6, 43, 11.61).Rad(),
	}
	g := &globe.Coord{
		Lat: base.NewAngle(false, 38, 55, 17).Rad(),
		Lon: base.NewAngle(false, 77, 3, 56).Rad(),
	}
	jd := julian.TimeToJD(time.Date(1987, 4, 10, 19, 21, 0, 0, time.UTC))
	st := sidereal.Apparent(jd)
	hz := new(coord.Horizontal).EqToHz(eq, g, st)
	AStr := base.DecSymAdd(fmt.Sprintf("%+.3f", hz.Az*180/math.Pi), '°')
	hStr := base.DecSymAdd(fmt.Sprintf("%+.3f", hz.Alt*180/math.Pi), '°')
	fmt.Println("A =", AStr)
	fmt.Println("h =", hStr)
	// Output:
	// A = +68°.034
	// h = +15°.125
}
예제 #5
0
파일: line_test.go 프로젝트: pjh59/meeus
func ExampleError() {
	// Example p. 124.
	rδ := base.NewRA(5, 32, 0.40).Rad()
	dδ := base.NewAngle(true, 0, 17, 56.9).Rad()
	rε := base.NewRA(5, 36, 12.81).Rad()
	dε := base.NewAngle(true, 1, 12, 7.0).Rad()
	rζ := base.NewRA(5, 40, 45.52).Rad()
	dζ := base.NewAngle(true, 1, 56, 33.3).Rad()

	ω := line.Error(rζ, dζ, rδ, dδ, rε, dε)
	fmt.Println(base.DecSymAdd(fmt.Sprintf("%.6f", ω*180/math.Pi), '°'))
	fmt.Printf("%.0f″\n", ω*3600*180/math.Pi)
	fmt.Println(base.NewFmtAngle(ω))
	// Output:
	// 0°.089876
	// 324″
	// 5′24″
}
예제 #6
0
파일: circle_test.go 프로젝트: pjh59/meeus
func ExampleSmallest_a() {
	// Example 20.a, p. 128.
	r1 := base.NewRA(12, 41, 8.64).Rad()
	r2 := base.NewRA(12, 52, 5.21).Rad()
	r3 := base.NewRA(12, 39, 28.11).Rad()
	d1 := base.NewAngle(true, 5, 37, 54.2).Rad()
	d2 := base.NewAngle(true, 4, 22, 26.2).Rad()
	d3 := base.NewAngle(true, 1, 50, 3.7).Rad()
	d, t := circle.Smallest(r1, d1, r2, d2, r3, d3)
	fmt.Printf("Δ = %s = %.62s\n",
		base.DecSymAdd(fmt.Sprintf("%.5f", d*180/math.Pi), '°'),
		base.NewFmtAngle(d))
	if t {
		fmt.Println("type I")
	} else {
		fmt.Println("type II")
	}
	// Output:
	// Δ = 4°.26363 = 4°16′
	// type II
}
예제 #7
0
파일: globe_test.go 프로젝트: pjh59/meeus
func ExampleEllipsoid_Distance() {
	// Example 11.c p 85.
	c1 := globe.Coord{
		base.NewAngle(false, 48, 50, 11).Rad(), // geographic latitude
		base.NewAngle(true, 2, 20, 14).Rad(),   // geographic longitude
	}
	c2 := globe.Coord{
		base.NewAngle(false, 38, 55, 17).Rad(),
		base.NewAngle(false, 77, 3, 56).Rad(),
	}
	fmt.Printf("%.2f km\n", globe.Earth76.Distance(c1, c2))
	cos := globe.ApproxAngularDistance(c1, c2)
	fmt.Printf("cos d = %.6f\n", cos)
	d := math.Acos(cos)
	fmt.Println("    d =",
		base.DecSymAdd(fmt.Sprintf("%.5f", d*180/math.Pi), '°'))
	fmt.Printf("    s = %.0f km\n", globe.ApproxLinearDistance(d))
	// Output:
	// 6181.63 km
	// cos d = 0.567146
	//     d = 55°.44855
	//     s = 6166 km
}