تاریخ، وقت، اور مقام کی بنیاد پر نظر آنے والے ستاروں کے نظام کو دکھانے والا انٹرایکٹو SVG رات کا آسمان میپ تیار کریں۔ خودکار شناخت یا دستی کوآرڈینیٹ ان پٹ، ستاروں کے نظام کے نام، ستاروں کی جگہیں، اور افق کی لائن کی خصوصیات شامل ہیں۔
ستاروں کے نقشے کا ایپ ایک طاقتور ٹول ہے جو فلکیات کے شوقین افراد اور ستاروں کے مشاہدین کے لیے ہے۔ یہ صارفین کو رات کے آسمان کو بصری شکل دینے اور اپنی جگہ، تاریخ، اور وقت کی بنیاد پر نظر آنے والے ستاروں کے نقشوں کی شناخت کرنے کی اجازت دیتا ہے۔ یہ انٹرایکٹو ایپلیکیشن ایک سادہ SVG رات کے آسمان کا نقشہ فراہم کرتی ہے، جس میں ستاروں کے نام، بنیادی ستاروں کی پوزیشنیں، اور ایک افقی لکیر دکھائی گئی ہے، یہ سب ایک صفحے کے انٹرفیس میں۔
ایپ فلکیاتی کوآرڈینیٹس اور وقت کے حسابات کا مجموعہ استعمال کرتی ہے تاکہ یہ طے کیا جا سکے کہ رات کے آسمان میں کون سے ستارے نظر آ رہے ہیں:
دائیں صعود (RA) اور انحراف (Dec): یہ فلکیاتی طور پر طول بلد اور عرض بلد کے مساوی ہیں، بالترتیب۔ RA کو گھنٹوں میں (0 سے 24) ماپا جاتا ہے، اور Dec کو ڈگریوں میں (-90° سے +90°) ماپا جاتا ہے۔
مقامی سڈیریل وقت (LST): یہ مشاہدہ کرنے والے کی طول بلد اور موجودہ تاریخ اور وقت کا استعمال کرتے ہوئے حساب کیا جاتا ہے۔ LST یہ طے کرتا ہے کہ فلکیاتی کرہ کا کون سا حصہ فی الحال اوپر ہے۔
گھنٹہ زاویہ (HA): یہ ایک فلکیاتی جسم اور میڈین کے درمیان زاویائی فاصلہ ہے، جسے حساب کیا جاتا ہے:
بلندی (Alt) اور افقی زاویہ (Az): یہ درج ذیل فارمولوں کا استعمال کرتے ہوئے حساب کیے جاتے ہیں:
جہاں Lat مشاہدہ کرنے والے کی عرض بلد ہے۔
ایپ درج ذیل مراحل انجام دیتی ہے تاکہ نظر آنے والے ستاروں کی شناخت کی جا سکے اور آسمان کا نقشہ بنایا جا سکے:
ستاروں کے نقشے کا ایپ مختلف ایپلیکیشنز رکھتا ہے:
جبکہ ہمارا ستاروں کا نقشہ ایپ رات کے آسمان کو دیکھنے کا ایک سادہ اور قابل رسائی طریقہ فراہم کرتا ہے، دیگر ٹولز بھی دستیاب ہیں:
ستاروں کے نقشوں اور ستاروں کے چارٹ کی تاریخ ہزاروں سال پہلے تک جاتی ہے:
ایپ ایک سادہ ستاروں کی ڈیٹا بیس کا استعمال کرتی ہے جو ایک TypeScript فائل میں محفوظ ہوتی ہے:
1export interface Star {
2 ra: number; // دائیں صعود گھنٹوں میں
3 dec: number; // انحراف ڈگریوں میں
4 magnitude: number; // ستارے کی چمک
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 // ... مزید ستارے
19 ]
20 },
21 // ... مزید ستارے
22];
23
یہ ڈیٹا کا ڈھانچہ ستاروں کی تلاش اور تشکیل کو مؤثر طریقے سے انجام دینے کی اجازت دیتا ہے۔
ایپ SVG رات کے آسمان کے نقشے بنانے کے لیے D3.js کا استعمال کرتی ہے۔ یہاں تخلیق کے عمل کا ایک سادہ مثال ہے:
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 // آسمان کا پس منظر بنائیں
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 // ستارے اور ستاروں کے نقشے بنائیں
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 // ستاروں کے نام شامل کریں
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 // افقی لکیر بنائیں
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 // RA اور Dec کو x، y کوآرڈینیٹس میں تبدیل کریں
60 // یہ ایک سادہ پروجیکشن ہے اور اسے صحیح فلکیاتی پروجیکشن سے تبدیل کیا جانا چاہیے
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
ایپ مختلف وقت کے زون اور مقامات کو درج ذیل طریقے سے ہینڈل کرتی ہے:
اگرچہ ایپ براہ راست روشنی کی آلودگی کو مدنظر نہیں رکھتی، صارفین کو یہ جاننا چاہیے کہ:
افقی لکیر مشاہدہ کرنے والے کی جگہ کی بنیاد پر حساب کی جاتی ہے:
ایپ موسمی تغیرات کو نظر آنے والے ستاروں میں درج ذیل طریقے سے مدنظر رکھتی ہے:
آپ کے ورک فلو کے لیے مفید ہونے والے مزید ٹولز کا انعام کریں