Ustvarite interaktivni SVG zemljevid nočnega neba, ki prikazuje vidne konstelacije na podlagi datuma, časa in lokacije. Vključuje samodejno zaznavanje ali ročni vnos koordinat, imena konstelacij, položaje zvezd in obzorje.
Aplikacija za opazovanje ozvezdij je močno orodje za astronomske navdušence in opazovalce zvezd. Uporabnikom omogoča vizualizacijo nočnega neba in prepoznavanje vidnih ozvezdij na podlagi njihove lokacije, datuma in časa. Ta interaktivna aplikacija ponuja preprost SVG zemljevid nočnega neba, ki prikazuje imena ozvezdij, osnovne položaje zvezd in obzorje, vse v okviru enostranske vmesnika.
Aplikacija uporablja kombinacijo nebesnih koordinat in izračunov časa za določitev, katera ozvezdja so vidna na nočnem nebu:
Prava ascenzija (RA) in deklinacija (Dec): To sta nebesna ekvivalenta dolžine in širine. RA se meri v urah (0 do 24), Dec pa v stopinjah (-90° do +90°).
Lokalni sideralni čas (LST): Izračuna se na podlagi dolžine opazovalca in trenutnega datuma in časa. LST določa, kateri del nebesne sfere je trenutno nad opazovalcem.
Urni kot (HA): To je kotna razdalja med meridianom in nebesnim objektom, izračunana kot:
Višina (Alt) in azimut (Az): Izračunata se z naslednjima formulama:
Kjer je Lat geografska širina opazovalca.
Aplikacija izvede naslednje korake za določitev vidnih ozvezdij in risanje zemljevida neba:
Aplikacija za opazovanje ozvezdij ima različne aplikacije:
Medtem ko naša aplikacija za opazovanje ozvezdij ponuja preprost in dostopen način za ogled nočnega neba, so na voljo tudi druga orodja:
Zgodovina zemljevidov ozvezdij in zvezdnih katalogov sega tisočletja nazaj:
Aplikacija uporablja poenostavljeno bazo podatkov o ozvezdjih, shranjeno v datoteki TypeScript:
1export interface Star {
2 ra: number; // Prava ascenzija v urah
3 dec: number; // Deklinacija v stopinjah
4 magnitude: number; // Svetlost zvezde
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 // ... več zvezd
19 ]
20 },
21 // ... več ozvezdij
22];
23
Ta podatkovna struktura omogoča učinkovito iskanje in upodabljanje ozvezdij.
Aplikacija uporablja D3.js za ustvarjanje SVG zemljevida nočnega neba. Tukaj je poenostavljen primer postopka upodabljanja:
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 // Nariši ozadje neba
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 // Nariši zvezde in ozvezdja
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 // Dodaj ime ozvezdja
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 // Nariši obzorje
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 // Pretvori RA in Dec v x, y koordinate
60 // To je poenostavljena projekcija in jo je treba nadomestiti s pravilno nebeško projekcijo
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
Aplikacija obravnava različne časovne pasove in lokacije tako, da:
Medtem ko aplikacija neposredno ne upošteva svetlobne onesnaženosti, naj uporabniki vedo, da:
Obzorje se izračuna na podlagi lokacije opazovalca:
Aplikacija upošteva sezonske variacije v vidnih ozvezdjih tako, da:
Odkrijte več orodij, ki bi lahko bila koristna za vaš delovni proces