Hasilkan peta langit malam SVG interaktif yang menunjukkan konstelasi yang terlihat berdasarkan tanggal, waktu, dan lokasi. Fitur deteksi otomatis atau input koordinat manual, nama konstelasi, posisi bintang, dan garis cakrawala.
Aplikasi Penampil Konstelasi adalah alat yang kuat bagi penggemar astronomi dan pengamat bintang. Aplikasi ini memungkinkan pengguna untuk memvisualisasikan langit malam dan mengidentifikasi konstelasi yang terlihat berdasarkan lokasi, tanggal, dan waktu mereka. Aplikasi interaktif ini menyediakan peta langit malam SVG sederhana, menampilkan nama konstelasi, posisi bintang dasar, dan garis horizon, semuanya dalam antarmuka satu halaman.
Aplikasi ini menggunakan kombinasi koordinat langit dan perhitungan waktu untuk menentukan konstelasi mana yang terlihat di langit malam:
Ascensi Kanan (RA) dan Deklinasi (Dec): Ini adalah ekuivalen langit dari bujur dan lintang, masing-masing. RA diukur dalam jam (0 hingga 24), dan Dec diukur dalam derajat (-90° hingga +90°).
Waktu Sidereal Lokal (LST): Ini dihitung menggunakan bujur pengamat dan tanggal serta waktu saat ini. LST menentukan bagian mana dari bola langit yang saat ini berada di atas kepala.
Sudut Jam (HA): Ini adalah jarak sudut antara meridian dan objek langit, dihitung sebagai:
Altitude (Alt) dan Azimuth (Az): Ini dihitung menggunakan rumus berikut:
Di mana Lat adalah lintang pengamat.
Aplikasi ini melakukan langkah-langkah berikut untuk menentukan konstelasi yang terlihat dan merender peta langit:
Aplikasi Penampil Konstelasi memiliki berbagai aplikasi:
Sementara Aplikasi Penampil Konstelasi kami menyediakan cara yang sederhana dan mudah diakses untuk melihat langit malam, ada alat lain yang tersedia:
Sejarah pemetaan konstelasi dan peta bintang telah ada selama ribuan tahun:
Aplikasi ini menggunakan basis data konstelasi yang disederhanakan yang disimpan dalam file TypeScript:
1export interface Star {
2 ra: number; // Ascensi Kanan dalam jam
3 dec: number; // Deklinasi dalam derajat
4 magnitude: number; // Kecerahan bintang
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 // ... lebih banyak bintang
19 ]
20 },
21 // ... lebih banyak konstelasi
22];
23
Struktur data ini memungkinkan pencarian dan rendering konstelasi yang efisien.
Aplikasi ini menggunakan D3.js untuk membuat peta langit malam SVG. Berikut adalah contoh sederhana dari proses rendering:
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 // Gambar latar belakang langit
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 // Gambar bintang dan konstelasi
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 // Tambahkan nama konstelasi
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 // Gambar garis horizon
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 // Konversi RA dan Dec ke koordinat x, y
60 // Ini adalah proyeksi yang disederhanakan dan harus diganti dengan proyeksi langit yang tepat
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
Aplikasi ini menangani berbagai zona waktu dan lokasi dengan:
Meskipun aplikasi ini tidak secara langsung memperhitungkan polusi cahaya, pengguna harus menyadari bahwa:
Garis horizon dihitung berdasarkan lokasi pengamat:
Aplikasi ini memperhitungkan variasi musiman dalam konstelasi yang terlihat dengan:
Temukan lebih banyak alat yang mungkin berguna untuk alur kerja Anda