Skip to content

Commit 4db59e7

Browse files
committed
Improve logic for risen tracks.
1 parent b65e358 commit 4db59e7

3 files changed

Lines changed: 21 additions & 6 deletions

File tree

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aw-clock",
3-
"version": "1.0.6",
3+
"version": "1.0.7",
44
"license": "MIT",
55
"author": "Kerry Shetline <kerry@shetline.com>",
66
"scripts": {

src/ephemeris.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919

2020
import {
21+
AstroEvent,
2122
AVG_SUN_MOON_RADIUS, EventFinder, HALF_MINUTE, JUPITER, MARS, MERCURY, MOON, REFRACTION_AT_HORIZON, RISE_EVENT, SATURN,
2223
SET_EVENT, SkyObserver, SolarSystem, SUN, UT_to_TDB, VENUS
2324
} from 'ks-astronomy';
@@ -122,13 +123,27 @@ export class Ephemeris {
122123
if (planet === SUN || planet === MOON)
123124
targetAltitude -= AVG_SUN_MOON_RADIUS;
124125

126+
const risen = (altitude >= targetAltitude);
127+
const risenTrack = $('#risen-' + planetIds[index]);
128+
let rise: AstroEvent;
129+
let set: AstroEvent;
130+
125131
rotate(elem, -eclipticLongitude);
126-
elem.css('stroke-width', altitude < targetAltitude ? '0.25' : '0');
132+
elem.css('stroke-width', risen ? '0' : '0.25');
127133
elem[0].setAttributeNS(null, 'r', altitude < targetAltitude ? '0.625' : '0.75');
128134

129-
const risenTrack = $('#risen-' + planetIds[index]);
130-
const rise = eventFinder.findEvent(planet, RISE_EVENT, time_JDU + 5 / 1400, observer, timezone, null, true);
131-
const set = eventFinder.findEvent(planet, SET_EVENT, time_JDU - 5 / 1440, observer, timezone);
135+
if (risen) {
136+
rise = eventFinder.findEvent(planet, RISE_EVENT, time_JDU + 2 / 1400, observer, timezone, null, true);
137+
138+
if (rise)
139+
set = eventFinder.findEvent(planet, SET_EVENT, rise.ut, observer, timezone);
140+
}
141+
else {
142+
set = eventFinder.findEvent(planet, SET_EVENT, time_JDU + 2 / 1400, observer, timezone, null, true);
143+
144+
if (set)
145+
rise = eventFinder.findEvent(planet, RISE_EVENT, set.ut, observer, timezone);
146+
}
132147

133148
if (rise && rise.ut > time_JDU - 1.1 && set && set.ut < time_JDU + 1.1) {
134149
const currentAngle = mod(-eclipticLongitude, 360);

0 commit comments

Comments
 (0)