Give the disc sizes the framing quotes as radii, and the meta columns in the order they are stored
The framing rule works in radii: at 390x844 a giant's disc may take 0.74 - 90/195 = 0.278 of the 195 px half-side, 54 px from the centre, and beforee62e2fbit took half of it, 98 px. The comment and the spec called the 98 px a disc, which reads as a width, and a name 70 px from the centre would then have been off it. e62e2fb's message says "54 px wide" and "98 px wide" for the same radii: the discs are about 108 and 195 px across. The stars-meta.bin doc comment still put the photometry byte before the distance error, whichf31ffe1moved ahead of it for alignment; metaColumns, the DISTANCE_ERROR_STEPS comment and the README already had the new order. The scene's 2 883 hosts past the survey edge are all hosts past it: 2 878 are the archive's own stars and 5 are HYG's (HD 81817, HD 102272, HD 158996, HD 208527, HD 220074). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -761,9 +761,9 @@ export class GalaxySystemSceneComponent implements AfterViewInit, OnDestroy {
|
|||||||
publishedTemperaturesK(exoplanets),
|
publishedTemperaturesK(exoplanets),
|
||||||
);
|
);
|
||||||
// Ringed, and drawn ahead of the brightness tier, only inside the survey edge. The 2 883 hosts
|
// Ringed, and drawn ahead of the brightness tier, only inside the survey edge. The 2 883 hosts
|
||||||
// the archive places past it, 916 of them beyond a kiloparsec, mostly the Kepler field's, were
|
// past it, 2 878 of them placed by the archive and 916 beyond a kiloparsec, mostly the Kepler
|
||||||
// a band of 1 687 fixed-size rings over the opening view's lower right, on the 250-350 pc grid
|
// field's, were a band of 1 687 fixed-size rings over the opening view's lower right, on the
|
||||||
// labels, and read as neighbours; they still compete for the budget by brightness, and search
|
// 250-350 pc grid labels, and read as neighbours; they still compete for the budget by brightness, and search
|
||||||
// still enters them.
|
// still enters them.
|
||||||
const ringed = (star: StarRecord): boolean => this.starIdsWithBodies.has(star.id) && Math.hypot(star.x, star.y, star.z) <= SURVEY_EDGE_PC;
|
const ringed = (star: StarRecord): boolean => this.starIdsWithBodies.has(star.id) && Math.hypot(star.x, star.y, star.z) <= SURVEY_EDGE_PC;
|
||||||
this.hostStars = Uint8Array.from(stars, (star) => (ringed(star) ? 1 : 0));
|
this.hostStars = Uint8Array.from(stars, (star) => (ringed(star) ? 1 : 0));
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ describe('systemFramingDistanceAu', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("keeps a giant's disc clear of its neighbours' names on a phone, which hang a fixed 78 px in from their ring", () => {
|
it("keeps a giant's disc clear of its neighbours' names on a phone, which hang a fixed 78 px in from their ring", () => {
|
||||||
// Betelgeuse at 390x844 and at 1600x1000. Kept to half the half-side, its disc was 98 px on the
|
// Betelgeuse at 390x844 and at 1600x1000. Kept to half the half-side, its disc was 98 px in radius
|
||||||
// phone, where the names come within 66 px of the centre.
|
// on the phone, where the names come within 66 px of the centre.
|
||||||
const betelgeuseAu = 2.72;
|
const betelgeuseAu = 2.72;
|
||||||
for (const [width, height] of [[390, 844], [1600, 1000]]) {
|
for (const [width, height] of [[390, 844], [1600, 1000]]) {
|
||||||
const viewport = { fovDegrees: 50, aspect: width / height, shorterSidePx: Math.min(width, height) };
|
const viewport = { fovDegrees: 50, aspect: width / height, shorterSidePx: Math.min(width, height) };
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ const MAX_FRAMING_DISTANCE_AU = 200;
|
|||||||
* How much of the view's tighter half-extent a giant's disc may take on arrival: inside the ring
|
* How much of the view's tighter half-extent a giant's disc may take on arrival: inside the ring
|
||||||
* the system view names the star's neighbours on, and clear of the names hung inward from it,
|
* the system view names the star's neighbours on, and clear of the names hung inward from it,
|
||||||
* whose nearest corners come within 292 px of the centre on a 1 000 px view. Framed to fill the
|
* whose nearest corners come within 292 px of the centre on a 1 000 px view. Framed to fill the
|
||||||
* frame instead, Betelgeuse settled at the three-radius closest approach with a disc of 379 px,
|
* frame instead, Betelgeuse settled at the three-radius closest approach with a disc 379 px in
|
||||||
* past the 370 px ring, and its neighbours' names on it.
|
* radius, past the ring 370 px out, and its neighbours' names on it.
|
||||||
*/
|
*/
|
||||||
const STAR_FRAME_FRACTION = 0.5;
|
const STAR_FRAME_FRACTION = 0.5;
|
||||||
/**
|
/**
|
||||||
@@ -78,7 +78,7 @@ export const NEIGHBOUR_RING_FRACTION = 0.74;
|
|||||||
* How far a neighbour's name reaches in from that ring, in pixels whatever the window: its nearest
|
* How far a neighbour's name reaches in from that ring, in pixels whatever the window: its nearest
|
||||||
* corner measured 74 px in on a 390 px phone and 78 px on a 1 000 px view, and a margin on that.
|
* corner measured 74 px in on a 390 px phone and 78 px on a 1 000 px view, and a margin on that.
|
||||||
* The fraction above left the names 0.24 of the half-side, 47 px on a phone, and at 390x844
|
* The fraction above left the names 0.24 of the half-side, 47 px on a phone, and at 390x844
|
||||||
* Betelgeuse's 98 px disc had HD 39374's name 70 px from its centre.
|
* Betelgeuse's disc, 98 px in radius, had HD 39374's name 70 px from its centre.
|
||||||
*/
|
*/
|
||||||
const NAME_REACH_PX = 90;
|
const NAME_REACH_PX = 90;
|
||||||
/** However small the window, the disc still takes this much of it. */
|
/** However small the window, the disc still takes this much of it. */
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ export const BYTES_PER_STAR_POSITION = STAR_POSITION_COMPONENTS * Float32Array.B
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Columns in `stars-meta.bin`, in order: catalogue id, apparent magnitude, colour index, an
|
* Columns in `stars-meta.bin`, in order: catalogue id, apparent magnitude, colour index, an
|
||||||
* index into the spectral-type dictionary, what those were measured in (see {@link PHOTOMETRY}),
|
* index into the spectral-type dictionary, the distance's relative error (see
|
||||||
* and the distance's relative error (see {@link DISTANCE_ERROR_STEPS}). Stored column by column
|
* {@link DISTANCE_ERROR_STEPS}), and what those were measured in (see {@link PHOTOMETRY}). Stored column by column
|
||||||
* rather than record by record so each one is a single typed-array view over the buffer, with no
|
* rather than record by record so each one is a single typed-array view over the buffer, with no
|
||||||
* per-record stride or alignment padding.
|
* per-record stride or alignment padding.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user