예제 #1
0
func ExampleTopocentricEcliptical() {
	// exercise, p. 282
	λʹ, βʹ, sʹ := parallax.TopocentricEcliptical(
		unit.NewAngle(' ', 181, 46, 22.5),
		unit.NewAngle(' ', 2, 17, 26.2),
		unit.NewAngle(' ', 0, 16, 15.5),
		unit.NewAngle(' ', 50, 5, 7.8),
		0,
		unit.NewAngle(' ', 23, 28, 0.8),
		unit.NewAngle(' ', 209, 46, 7.9).Time(),
		unit.NewAngle(' ', 0, 59, 27.7))
	fmt.Printf("λʹ = %.1s\n", sexa.FmtAngle(λʹ))
	fmt.Printf("βʹ = %+.1s\n", sexa.FmtAngle(βʹ))
	fmt.Printf("sʹ = %.1s\n", sexa.FmtAngle(sʹ))
	// Output:
	// λʹ = 181°48′5.0″
	// βʹ = +1°29′7.1″
	// sʹ = 16′25.5″
}
예제 #2
0
func TestTopocentricEcliptical(t *testing.T) {
	// exercise, p. 282
	λʹ, βʹ, sʹ := parallax.TopocentricEcliptical(base.NewAngle(false,
		181, 46, 22.5).Rad(),
		base.NewAngle(false, 2, 17, 26.2).Rad(),
		base.NewAngle(false, 0, 16, 15.5).Rad(),
		base.NewAngle(false, 50, 5, 7.8).Rad(), 0,
		base.NewAngle(false, 23, 28, 0.8).Rad(),
		base.NewAngle(false, 209, 46, 7.9).Rad(),
		base.NewAngle(false, 0, 59, 27.7).Rad())
	λʹa := base.NewAngle(false, 181, 48, 5).Rad()
	βʹa := base.NewAngle(false, 1, 29, 7.1).Rad()
	sʹa := base.NewAngle(false, 0, 16, 25.5).Rad()
	if math.Abs(λʹ-λʹa) > .1/60/60*math.Pi/180 {
		t.Fatal(λʹ, λʹa)
	}
	if math.Abs(βʹ-βʹa) > .1/60/60*math.Pi/180 {
		t.Fatal(βʹ, βʹa)
	}
	if math.Abs(sʹ-sʹa) > .1/60/60*math.Pi/180 {
		t.Fatal(sʹ, sʹa)
	}
}