コード例 #1
0
ファイル: CartesianTest.php プロジェクト: gavinkou/AstroCoord
 /**
  * @covers Marando\AstroCoord\Cartesian::subtract
  */
 public function testSubtract()
 {
     // Frame & epoch
     $frame = Frame::ICRF();
     $epoch = AstroDate::parse('2015-Mar-20 00:00:00')->toEpoch();
     // Position / velocity
     $x = Distance::au(+1.18);
     $y = Distance::au(-3.65);
     $z = Distance::au(-2.12);
     $vx = Velocity::aud(2.05);
     $vy = Velocity::aud(2.82);
     $vz = Velocity::aud(1.14);
     $a = new Cartesian($frame, $epoch, $x, $y, $z, $vx, $vy, $vz);
     $x = Distance::au(+9.32);
     $y = Distance::au(-5.25);
     $z = Distance::au(-6.89);
     $vx = Velocity::aud(5.33);
     $vy = Velocity::aud(2.09);
     $vz = Velocity::aud(0.6899999999999999);
     $b = new Cartesian($frame, $epoch, $x, $y, $z, $vx, $vy, $vz);
     $c = $a->subtract($b);
     $this->assertEquals(-8.140000000000001, $c->x->au);
     $this->assertEquals(1.6, $c->y->au);
     $this->assertEquals(4.77, $c->z->au);
     $this->assertEquals(-3.28, $c->vx->aud);
     $this->assertEquals(0.73, $c->vy->aud);
     $this->assertEquals(0.45, $c->vz->aud);
 }
コード例 #2
0
ファイル: Cartesian.php プロジェクト: marando/astrocoord
 /**
  * Subtracts another cartesian vector from this instance
  *
  * @param static $b
  */
 public function subtract(Cartesian $b)
 {
     $this->x->subtract($b->x);
     $this->y->subtract($b->y);
     $this->z->subtract($b->z);
     if ($this->vx) {
         $this->vx->subtract($b->vx);
         $this->vy->subtract($b->vy);
         $this->vz->subtract($b->vz);
     }
     return $this;
 }
コード例 #3
0
ファイル: GenericTest.php プロジェクト: marando/astrocoord
 public function test()
 {
     return;
     $frame = Frame::ICRF();
     $epoch = Epoch::J(2000);
     echo $epoch->toDate()->toTDB();
     echo "\n";
     echo "\n";
     exit;
     $ra = \Marando\Units\Time::hms(11, 16, 46.6);
     $dec = \Marando\Units\Angle::dms(5, 45, 32.5);
     $dist = Distance::au(5.8);
     echo "\n" . ($eq = new Equat($frame, $epoch, $ra, $dec, $dist));
     echo "\n" . ($eq = (new Equat($frame, $epoch, $ra, $dec, $dist))->apparent());
     echo "\n";
     return;
     $frame = Frame::ICRF();
     $epoch = AstroDate::jd(2457335.472615741)->toEpoch();
     $ra = \Marando\Units\Time::hms(11, 16, 46.6);
     $dec = \Marando\Units\Angle::dms(5, 45, 32.5);
     $dist = Distance::au(5.8);
     echo "\n" . ($eq = new Equat($frame, $epoch, $ra, $dec, $dist));
     echo "\n" . ($eq = (new Equat($frame, $epoch, $ra, $dec, $dist))->apparent());
     $eq = new Equat($frame, $epoch, $ra, $dec, $dist);
     $eq->topo = Geo::deg(27, -82);
     echo "\n" . $eq->toHoriz();
     echo "\n" . $eq->apparent();
     echo "\n" . ($h = $eq->toHoriz());
     echo "\n" . $h->az->deg . "\t" . $h->alt->deg;
     echo "\n" . $eq->apparent(\Marando\Units\Pressure::mbar(100), \Marando\Units\Temperature::F(90), 0.85);
     echo "\n" . $eq->toHoriz();
     return;
     $ra = \Marando\Units\Time::hours(14.424354);
     $dec = \Marando\Units\Angle::deg(33.54366);
     $dist = Distance::au(1.5);
     $geo = Geo::deg(27, -82);
     $e = new Equat(Frame::ICRF(), Epoch::jd(2455586), $ra, $dec, $dist);
     $e->topo = $geo;
     echo "\n\n" . $e;
     echo "\n" . $e->apparent();
     $e = new Equat(Frame::ICRF(), Epoch::jd(2455586), $ra, $dec, $dist);
     $e->topo = $geo;
     echo "\n" . $e->apparent();
     $e = new Equat(Frame::ICRF(), Epoch::jd(2455586), $ra, $dec, $dist);
     $e->topo = $geo;
     echo "\n" . $e->toHoriz();
     return;
     $e = new Equat(Frame::ICRF(), Epoch::jd(2455586), $ra, $dec, $dist);
     echo "\n\n" . $e;
     echo "\n" . $e->apparent($geo);
     echo "\n" . $e->apparent()->toHoriz($geo);
     $e = new Equat(Frame::ICRF(), Epoch::jd(2455586), $ra, $dec, $dist);
     echo "\n\n" . $e;
     echo "\n" . $e->apparent();
     echo "\n" . $e->apparent()->toHoriz();
     $e = new Equat(Frame::ICRF(), Epoch::jd(2451586), $ra, $dec, $dist);
     $e->topo = $geo;
     echo "\n\n" . $e;
     echo "\n" . $e->apparent();
     echo "\n" . $e->apparent()->toHoriz();
     return;
     // Position of Mercury
     $x = Distance::au(+1.18052679326447);
     $y = Distance::au(-0.3650485652522116);
     $z = Distance::au(-0.2123422968928603);
     // Velocity of Mercury
     $vx = Velocity::aud(0.02052320553396918);
     $vy = Velocity::aud(0.02828864020900079);
     $vz = Velocity::aud(0.01145246106968459);
     // Frame & epoch
     $frame = Frame::ICRF();
     $epoch = AstroDate::parse('2015-Mar-20')->toEpoch();
     $c = new Cartesian($frame, $epoch, $x, $y, $z, $vx, $vy, $vz);
     echo "\n\n";
     echo $c;
     echo "\n\n";
     echo $c->setUnit('km km/d');
     echo "\n\n";
     echo $c->setUnit('km km/s');
     echo "\n\n";
     echo $c->toEquat();
     echo "\n\n";
     echo $c->toEquat()->apparent();
     echo "\n\n";
     echo $c->toEquat()->apparent(Geo::deg(27, 278));
     echo "\n\n";
     echo $c->toEquat()->toHoriz(Geo::deg(27, 278));
     echo "\n\n";
 }
コード例 #4
0
ファイル: VelocityTest.php プロジェクト: marando/units
 public function testDist()
 {
     $v = Velocity::mph(70);
     $this->assertEquals(35, $v->dist(Time::min(30))->mi);
 }