Ģenerējiet interaktīvu SVG nakts debesu karti, kas parāda redzamās konstelācijas, pamatojoties uz datumu, laiku un atrašanās vietu. Iespējas ietver automātisku noteikšanu vai manuālu koordinātu ievadi, konstelāciju nosaukumus, zvaigžņu pozīcijas un horizonta līniju.
Zvaigžņu konstelāciju skatītājs ir jaudīgs rīks astronomijas entuziastiem un zvaigžņu vērotājiem. Tas ļauj lietotājiem vizualizēt nakts debesu un identificēt redzamās konstelācijas, pamatojoties uz viņu atrašanās vietu, datumu un laiku. Šī interaktīvā lietojumprogramma nodrošina vienkāršu SVG nakts debesu karti, kurā ir redzamas konstelāciju nosaukumi, pamata zvaigžņu pozīcijas un horizontāla līnija, viss vienas lapas saskarnē.
Lietojumprogramma izmanto kombināciju no debesu koordinātām un laika aprēķiniem, lai noteiktu, kuras konstelācijas ir redzamas nakts debesīs:
Labā ascensija (RA) un Deklinācija (Dec): Šie ir debesu ekvivalenti garumam un platumam, attiecīgi. RA tiek mērīta stundās (0 līdz 24), un Dec tiek mērīta grādos (-90° līdz +90°).
Vietējā sidereālā laiks (LST): Tas tiek aprēķināts, izmantojot novērotāja garumu un pašreizējo datumu un laiku. LST nosaka, kura daļa no debesu sfēras pašlaik ir virs galvas.
Stundas leņķis (HA): Tas ir leņķiskais attālums starp meridiānu un debesu objektu, kas tiek aprēķināts kā:
Augstums (Alt) un Azimuts (Az): Tie tiek aprēķināti, izmantojot šādas formulas:
Kur Lat ir novērotāja platums.
Lietojumprogramma veic šādas darbības, lai noteiktu redzamās konstelācijas un attēlotu debesu karti:
Zvaigžņu konstelāciju skatītājs ir noderīgs dažādās jomās:
Lai gan mūsu Zvaigžņu konstelāciju skatītājs nodrošina vienkāršu un pieejamu veidu, kā skatīt nakts debesis, ir pieejami arī citi rīki:
Konstelāciju kartēšanas un zvaigžņu kartes vēsture sniedzas tūkstošiem gadu atpakaļ:
Lietojumprogramma izmanto vienkāršotu konstelāciju datu bāzi, kas uzglabāta TypeScript failā:
1export interface Star {
2 ra: number; // Labā ascensija stundās
3 dec: number; // Deklinācija grādos
4 magnitude: number; // Zvaigznes spožums
5}
6
7export interface Constellation {
8 name: string;
9 stars: Star[];
10}
11
12export const constellations: Constellation[] = [
13 {
14 name: "Ursa Major",
15 stars: [
16 { ra: 11.062, dec: 61.751, magnitude: 1.79 },
17 { ra: 10.229, dec: 60.718, magnitude: 2.37 },
18 // ... vairāk zvaigzņu
19 ]
20 },
21 // ... vairāk konstelāciju
22];
23
Šī datu struktūra ļauj efektīvi meklēt un attēlot konstelācijas.
Lietojumprogramma izmanto D3.js, lai izveidotu SVG nakts debesu karti. Šeit ir vienkāršots piemērs attēlošanas procesam:
1import * as d3 from 'd3';
2
3function renderSkyMap(visibleConstellations, width, height) {
4 const svg = d3.create("svg")
5 .attr("width", width)
6 .attr("height", height)
7 .attr("viewBox", [0, 0, width, height]);
8
9 // Uzzīmēt debess fona
10 svg.append("circle")
11 .attr("cx", width / 2)
12 .attr("cy", height / 2)
13 .attr("r", Math.min(width, height) / 2)
14 .attr("fill", "navy");
15
16 // Uzzīmēt zvaigznes un konstelācijas
17 visibleConstellations.forEach(constellation => {
18 const lineGenerator = d3.line()
19 .x(d => projectStar(d).x)
20 .y(d => projectStar(d).y);
21
22 svg.append("path")
23 .attr("d", lineGenerator(constellation.stars))
24 .attr("stroke", "white")
25 .attr("fill", "none");
26
27 constellation.stars.forEach(star => {
28 const { x, y } = projectStar(star);
29 svg.append("circle")
30 .attr("cx", x)
31 .attr("cy", y)
32 .attr("r", 5 - star.magnitude)
33 .attr("fill", "white");
34 });
35
36 // Pievienot konstelācijas nosaukumu
37 const firstStar = projectStar(constellation.stars[0]);
38 svg.append("text")
39 .attr("x", firstStar.x)
40 .attr("y", firstStar.y - 10)
41 .text(constellation.name)
42 .attr("fill", "white")
43 .attr("font-size", "12px");
44 });
45
46 // Uzzīmēt horizontālo līniju
47 svg.append("line")
48 .attr("x1", 0)
49 .attr("y1", height / 2)
50 .attr("x2", width)
51 .attr("y2", height / 2)
52 .attr("stroke", "green")
53 .attr("stroke-width", 2);
54
55 return svg.node();
56}
57
58function projectStar(star) {
59 // Pārvērst RA un Dec uz x, y koordinātēm
60 // Šī ir vienkāršota projekcija un tai jābūt aizvietotai ar pareizu debesu projekciju
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
Lietojumprogramma apstrādā dažādas laika joslas un atrašanās vietas, veicot šādas darbības:
Lai gan lietojumprogramma tieši neņem vērā gaismas piesārņojumu, lietotājiem jāzina, ka:
Horizontālā līnija tiek aprēķināta, pamatojoties uz novērotāja atrašanās vietu:
Lietojumprogramma ņem vērā sezonālās variācijas redzamajās konstelācijās, veicot šādas darbības:
Atklājiet vairāk rīku, kas varētu būt noderīgi jūsu darbplūsmai