Loo interaktiivne SVG öötaeva kaart, mis näitab nähtavaid tähtkujusid vastavalt kuupäevale, kellaajale ja asukohale. Omab automaatset tuvastamist või käsitsi koordinaatide sisestamist, tähtkuju nimesid, tähtede asukohti ja horisonti.
Tähtede Vaataja Rakendus on võimas tööriist astronoomia entusiastidele ja tähevaatlejatele. See võimaldab kasutajatel visualiseerida öist taevast ja tuvastada nähtavad tähtede kujundid vastavalt nende asukohale, kuupäevale ja kellaajale. See interaktiivne rakendus pakub lihtsat SVG öise taeva kaarti, mis kuvab tähtede kujundite nimesid, põhitähtede asukohti ja horisontaaljoont, kõik ühes leheliideses.
Rakendus kasutab kombinatsiooni taevastest koordinaatidest ja aja arvutamisest, et määrata, millised tähtede kujundid on öises taevas nähtavad:
Parempoolne tõus (RA) ja Dekliinatsioon (Dec): Need on taevased ekvivalentid pikkuse ja laiuskraadi jaoks. RA mõõdetakse tundides (0 kuni 24), ja Dec mõõdetakse kraadides (-90° kuni +90°).
Kohalik sidereaeg (LST): See arvutatakse vaatleja pikkuskraadi ja praeguse kuupäeva ning kellaaja põhjal. LST määrab, milline osa taevast on praegu üleval.
Tunni nurk (HA): See on nurkade vahemaa meridiaani ja taevase objekti vahel, arvutatakse järgmiselt:
Kõrgus (Alt) ja Azimuth (Az): Need arvutatakse järgmiste valemite abil:
Kus Lat on vaatleja laius.
Rakendus viib läbi järgmised sammud nähtavate tähtede kujundite määramiseks ja taeva kaardi renderdamiseks:
Tähtede Vaataja Rakendusel on mitmeid rakendusi:
Kuigi meie Tähtede Vaataja Rakendus pakub lihtsat ja ligipääsetavat viisi öise taeva vaatamiseks, on olemas ka teisi tööriistu:
Tähtede kujundite kaardistamise ja tähtede kaartide ajalugu ulatub tuhandete aastate taha:
Rakendus kasutab lihtsustatud tähtede kujundite andmebaasi, mis on salvestatud TypeScripti failis:
1export interface Star {
2 ra: number; // Parempoolne tõus tundides
3 dec: number; // Dekliinatsioon kraadides
4 magnitude: number; // Tähe heledus
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 // ... rohkem tähti
19 ]
20 },
21 // ... rohkem tähtede kujundeid
22];
23
See andmestruktuur võimaldab tõhusat otsimist ja tähtede kujundite renderdamist.
Rakendus kasutab D3.js, et luua SVG öise taeva kaart. Siin on lihtsustatud näide renderdamise protsessist:
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 // Joonista taeva taust
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 // Joonista tähed ja tähtede kujundid
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 // Lisa tähtede kujundi nimi
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 // Joonista horisontaaljoon
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 // Muuda RA ja Dec x, y koordinaatideks
60 // See on lihtsustatud projektsioon ja peaks olema asendatud korraliku taevase projektsiooniga
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
Rakendus käsitleb erinevaid ajavööndeid ja asukohti järgmiselt:
Kuigi rakendus ei arvesta otseselt valguse saastega, peaksid kasutajad olema teadlikud, et:
Horisontaaljoon arvutatakse vaatleja asukoha põhjal:
Rakendus arvestab hooajalisi variatsioone nähtavates tähtede kujundites järgmiselt:
Avasta rohkem tööriistu, mis võivad olla kasulikud teie töövoos