سڑک اور ریلوے ڈیزائن کے لیے عمودی منحنیات کے پیرامیٹرز کا حساب لگائیں۔ ٹرانسپورٹیشن منصوبوں میں کریسٹ اور ساگ منحنیات کے لیے بلندیوں، K کی قیمتیں، اونچے/نیچے پوائنٹس، اور مزید تلاش کریں۔
ایک عمودی منحنی کیلکولیٹر شہری انجینئرنگ میں ایک لازمی ٹول ہے جو انجینئرز کو مختلف سڑک کے گریڈز کے درمیان ہموار منتقلی ڈیزائن کرنے میں مدد کرتا ہے۔ عمودی منحنیات پیرا بولک منحنیات ہیں جو سڑک اور ریلوے ڈیزائن میں استعمال ہوتی ہیں تاکہ دو مختلف ڈھلوانوں یا گریڈز کے درمیان بتدریج تبدیلی پیدا کی جا سکے، جس سے آرام دہ ڈرائیونگ کے حالات اور مناسب نکاسی آب کو یقینی بنایا جا سکے۔ یہ کیلکولیٹر عمودی منحنیات کے ڈیزائن کے لیے درکار پیچیدہ ریاضیاتی حسابات کو آسان بناتا ہے، جس سے شہری انجینئرز، سڑک کے ڈیزائنرز، اور تعمیراتی پیشہ ور افراد کو کلیدی پیرامیٹرز جیسے کہ منحنیات کی بلندی، اونچے اور نیچے کے نکات، اور K کی قیمتیں جلدی سے طے کرنے کی اجازت ملتی ہے۔
چاہے آپ ایک ہائی وے، مقامی سڑک، یا ریلوے کا ڈیزائن کر رہے ہوں، عمودی منحنیات حفاظت، ڈرائیور کے آرام، اور مناسب طوفانی پانی کے انتظام کے لیے اہم ہیں۔ یہ جامع کیلکولیٹر دونوں کریسٹ منحنیات (جہاں سڑک اوپر جاتی ہے پھر نیچے آتی ہے) اور سَگ منحنیات (جہاں سڑک نیچے جاتی ہے پھر اوپر آتی ہے) کو سنبھالتا ہے، نقل و حمل کی انجینئرنگ کے منصوبوں میں مناسب عمودی ترتیب کے ڈیزائن کے لیے درکار تمام ضروری معلومات فراہم کرتا ہے۔
عمودی منحنی ایک پیرا بولک منحنی ہے جو سڑکوں، ہائی ویز، ریلوے، اور دیگر نقل و حمل کے بنیادی ڈھانچے کی عمودی ترتیب میں استعمال ہوتی ہے۔ یہ دو مختلف گریڈز یا ڈھلوانوں کے درمیان ہموار منتقلی فراہم کرتی ہے، جس سے اس نقطے پر اچانک تبدیلی کو ختم کیا جا سکتا ہے جہاں گریڈ ملتے ہیں۔ یہ ہموار منتقلی درج ذیل کے لیے ضروری ہے:
عمودی منحنیات عام طور پر پیرا بولک شکل میں ہوتی ہیں کیونکہ ایک پیرا بولہ گریڈ میں تبدیلی کی مستقل شرح فراہم کرتا ہے، جس کے نتیجے میں ایک ہموار منتقلی ہوتی ہے جو گاڑیوں اور مسافروں کے تجربے میں قوتوں کو کم کرتی ہے۔
شہری انجینئرنگ میں استعمال ہونے والی دو بنیادی اقسام کی عمودی منحنیات ہیں:
کریسٹ منحنیات: یہ اس وقت ہوتی ہیں جب ابتدائی گریڈ آخری گریڈ سے زیادہ ہو (جیسے +3% سے -2% جانا)۔ یہ ایک پہاڑی یا اونچائی بناتی ہے۔ کریسٹ منحنیات بنیادی طور پر رکنے کی نظر کے فاصلے کی ضروریات کی بنیاد پر ڈیزائن کی جاتی ہیں۔
سَگ منحنیات: یہ اس وقت ہوتی ہیں جب ابتدائی گریڈ آخری گریڈ سے کم ہو (جیسے -2% سے +3% جانا)۔ یہ ایک وادی یا نچلے نقطے کی شکل اختیار کرتی ہے۔ سَگ منحنیات کو عام طور پر ہیڈلائٹ نظر کے فاصلے اور نکاسی کے معاملات کی بنیاد پر ڈیزائن کیا جاتا ہے۔
عمودی منحنی کو مکمل طور پر بیان کرنے کے لیے کئی اہم پیرامیٹرز قائم کرنے کی ضرورت ہوتی ہے:
عمودی منحنی کے کسی بھی نقطے پر بلندی کا حساب لگانے کے لیے درج ذیل مربع مساوات استعمال کی جا سکتی ہے:
جہاں:
K کی قیمت منحنی کی چپٹی پن کی پیمائش ہے اور اسے درج ذیل طور پر حساب کیا جاتا ہے:
جہاں:
زیادہ K کی قیمتیں چپٹی منحنیات کی نشاندہی کرتی ہیں۔ ڈیزائن کے معیارات اکثر ڈیزائن کی رفتار اور منحنی کی قسم کی بنیاد پر کم از کم K کی قیمتیں مخصوص کرتے ہیں۔
کریسٹ منحنیات کے لیے جہاں اور ہے، یا سَگ منحنیات کے لیے جہاں اور ہے، منحنی کے اندر ایک اونچا یا نیچا نقطہ ہوگا۔ اس نقطے کا اسٹیشن درج ذیل طور پر حساب کیا جا سکتا ہے:
اس اونچے/نیچے کے نقطے پر بلندی پھر بنیادی عمودی منحنی کے مساوات کا استعمال کرتے ہوئے حساب کی جاتی ہے۔
PVI اسٹیشن اور بلندی کو مدنظر رکھتے ہوئے، PVC اور PVT کو درج ذیل طور پر حساب کیا جا سکتا ہے:
نوٹ: بلندی کے فارمولوں میں 200 سے تقسیم گریڈ کو فیصد سے اعشاری شکل میں تبدیل کرنے اور منحنی کی نصف لمبائی کو مدنظر رکھنے کے لیے کیا گیا ہے۔
برابر گریڈز (g₁ = g₂): جب ابتدائی اور آخری گریڈ برابر ہوں تو عمودی منحنی کی ضرورت نہیں ہوتی۔ K کی قیمت لامحدود ہو جاتی ہے، اور "منحنی" دراصل ایک سیدھی لائن ہوتی ہے۔
بہت چھوٹے گریڈ کے فرق: جب گریڈز کے درمیان فرق بہت چھوٹا ہو تو K کی قیمت بہت بڑی ہو جاتی ہے۔ اس کے لیے عملی نفاذ کے لیے منحنی کی لمبائی میں ایڈجسٹمنٹ کی ضرورت ہو سکتی ہے۔
صفر لمبائی کی منحنیات: عمودی منحنیات جس کی لمبائی صفر ہو ریاضیاتی طور پر درست نہیں ہے اور اس سے بچنا چاہیے۔
ہمارا عمودی منحنی کیلکولیٹر ان پیچیدہ حسابات کو آسان بناتا ہے، جس سے آپ کو اپنے عمودی منحنی کے ڈیزائن کے لیے تمام کلیدی پیرامیٹرز جلدی سے طے کرنے کی اجازت ملتی ہے۔ اسے استعمال کرنے کا طریقہ یہ ہے:
درج کردہ مطلوبہ پیرامیٹرز کے بعد، کیلکولیٹر خود بخود حساب کرے گا اور درج ذیل کو ظاہر کرے گا:
آپ منحنی کے ساتھ کسی مخصوص اسٹیشن پر بلندی بھی پوچھ سکتے ہیں:
کیلکولیٹر عمودی منحنی کی بصری نمائندگی فراہم کرتا ہے، جو دکھاتا ہے:
یہ بصری نمائندگی آپ کو منحنی کی شکل کو سمجھنے میں مدد دیتی ہے اور اس بات کی تصدیق کرتی ہے کہ یہ آپ کی ڈیزائن کی ضروریات کو پورا کرتی ہے۔
عمودی منحنیات کے حسابات متعدد شہری انجینئرنگ کی ایپلی کیشنز میں ضروری ہیں:
عمودی منحنیات سڑک کے ڈیزائن کے بنیادی اجزاء ہیں، جو محفوظ اور آرام دہ ڈرائیونگ کے حالات کو یقینی بناتی ہیں۔ یہ استعمال ہوتی ہیں تاکہ:
مثال کے طور پر، جب ایک ہائی وے کا ڈیزائن کیا جا رہا ہو جو پہاڑی علاقے سے گزرنا ہو، تو انجینئرز کو یہ یقینی بنانا ہوگا کہ ڈرائیوروں کے پاس سڑک پر کسی رکاوٹ کے اچانک ظاہر ہونے کی صورت میں محفوظ طریقے سے رکنے کے لیے کافی نظر کا فاصلہ ہو۔
ریلوے انجینئرنگ میں، عمودی منحنیات کے لیے اہم ہیں:
ریلوے کی عمودی منحنیات میں سڑکوں کی نسبت زیادہ K کی قیمتیں ہوتی ہیں کیونکہ ٹرینوں کو تیز ڈھلوانوں کو نیویگیٹ کرنے کی محدود صلاحیت ہوتی ہے۔
عمودی منحنیات ہوائی اڈے کے رن وے کے ڈیزائن میں استعمال ہوتی ہیں تاکہ:
جب تعمیراتی منصوبوں کے لیے زمین کی ترقی کی جا رہی ہو تو عمودی منحنیات مدد کرتی ہیں:
عمودی منحنیات ڈیزائن کرنے میں اہم ہیں:
عمودی منحنیات کے درست ڈیزائن کو یقینی بناتا ہے کہ پانی مناسب رفتار سے بہتا ہے اور مٹی یا کٹاؤ کو روکتا ہے۔
اگرچہ پیرا بولک عمودی منحنیات زیادہ تر شہری انجینئرنگ ایپلی کیشنز میں معیاری ہیں، لیکن کچھ متبادل بھی ہیں:
مدور عمودی منحنیات: کچھ پرانے ڈیزائنوں اور کچھ بین الاقوامی معیارات میں استعمال ہوتے ہیں۔ یہ گریڈ میں متغیر تبدیلی کی شرح فراہم کرتے ہیں، جو ڈرائیوروں کے لیے کم آرام دہ ہو سکتی ہے۔
کلوٹھوئڈ یا اسپائرل منحنیات: کبھی کبھار خصوصی ایپلی کیشنز میں استعمال ہوتی ہیں جہاں بتدریج بڑھتی ہوئی تبدیلی کی شرح مطلوب ہوتی ہے۔
کوبک پیرا بولاز: کبھی کبھار خاص حالات کے لیے استعمال ہوتے ہیں جہاں زیادہ پیچیدہ منحنیات کی خصوصیات کی ضرورت ہوتی ہے۔
سیدھی لائن کے تخمینے: بہت ابتدائی ڈیزائنوں میں یا بہت ہموار زمین کے لیے، سچی عمودی منحنیات کے بجائے سادہ سیدھی لائن کے روابط استعمال کیے جا سکتے ہیں۔
پیرا بولک عمودی منحنیات زیادہ تر ایپلی کیشنز کے لیے معیاری رہتی ہیں کیونکہ یہ سادگی، مستقل تبدیلی کی شرح، اور اچھی طرح سے قائم کردہ ڈیزائن کے طریقوں کی وجہ سے ہیں۔
عمودی منحنیات کے ڈیزائن کے طریقوں کی ترقی شہری نقل و حمل کی انجینئرنگ کے ساتھ ساتھ ترقی پذیر ہوئی ہے:
ابتدائی سڑک کی تعمیر میں، عمودی ترتیب اکثر قدرتی زمین کی شکل کے مطابق ہوتی تھی، جس میں کم سے کم گریڈنگ ہوتی تھی۔ جیسے جیسے گاڑیاں تیز اور زیادہ عام ہوئیں، سڑک کے ڈیزائن کے لیے زیادہ سائنسی طریقوں کی ضرورت واضح ہو گئی۔
20ویں صدی کے اوائل میں پیرا بولک عمودی منحنیات معیاری بن گئیں جب انجینئرز نے اس کے فوائد کو تسلیم کیا:
20ویں صدی کے وسط تک، نقل و حمل کے اداروں نے عمودی منحنیات کے ڈیزائن کے لیے معیاری طریقے تیار کرنا شروع کر دیے:
کمپیوٹروں کی آمد کے ساتھ، عمودی منحنیات کا ڈیزائن زیادہ پیچیدہ ہو گیا:
آج، عمودی منحنیات کا ڈیزائن نئے تحقیق کے ساتھ ترقی کرتا رہتا ہے جو ڈرائیور کے رویے، گاڑی کی حرکیات، اور ماحولیاتی عوامل پر توجہ مرکوز کرتا ہے۔
K کی قیمت افقی دوری کی نمائندگی کرتی ہے جو گریڈ میں 1% تبدیلی حاصل کرنے کے لیے درکار ہوتی ہے۔ اسے عمودی منحنی کی لمبائی کو ابتدائی اور آخری گریڈز کے درمیان مطلق فرق سے تقسیم کرکے حساب کیا جاتا ہے۔ زیادہ K کی قیمتیں چپٹی، زیادہ ہموار منحنیات کی نشاندہی کرتی ہیں۔ ڈیزائن کے معیارات اکثر کم از کم K کی قیمتیں فراہم کرتے ہیں جو ڈیزائن کی رفتار اور منحنی کی قسم کی بنیاد پر ہوتی ہیں۔
عمودی منحنی کی قسم ابتدائی اور آخری گریڈ کے درمیان تعلقات پر منحصر ہے:
کم از کم K کی قیمتیں ڈیزائن کی رفتار، منحنی کی قسم، اور قابل اطلاق ڈیزائن کے معیارات پر منحصر ہیں۔ مثال کے طور پر، AASHTO کریسٹ منحنیات کے لیے رکنے کی نظر کے فاصلے اور سَگ منحنیات کے لیے ہیڈلائٹ نظر کے فاصلے کی بنیاد پر کم از کم K کی قیمتوں کی میزیں فراہم کرتا ہے۔ زیادہ ڈیزائن کی رفتار زیادہ K کی قیمتوں کی ضرورت ہوتی ہے تاکہ حفاظت کو یقینی بنایا جا سکے۔
اونچے نقطے (کریسٹ منحنیات کے لیے) یا نیچے کے نقطے (سَگ منحنیات کے لیے) کا حساب اس جگہ ہوتا ہے جہاں منحنی کے ساتھ گریڈ صفر کے برابر ہوتا ہے۔ یہ درج ذیل مساوات کا استعمال کرتے ہوئے حساب کیا جا سکتا ہے:
یہ اونچا/نیچا نقطہ صرف اس صورت میں موجود ہوتا ہے اگر یہ اسٹیشن PVC اور PVT کے درمیان ہو۔
اگر ابتدائی اور آخری گریڈ برابر ہوں تو عمودی منحنی کی ضرورت نہیں ہوتی۔ نتیجہ صرف ایک سیدھی لائن ہے جس میں مستقل گریڈ ہوتا ہے۔ اس صورت میں K کی قیمت نظریاتی طور پر لامحدود ہو جاتی ہے۔
لمبی عمودی منحنیات گریڈ کے درمیان زیادہ بتدریج منتقلی فراہم کرتی ہیں، جس کے نتیجے میں زیادہ ڈرائیور کی راحت ہوتی ہے۔ چھوٹی عمودی منحنیات عمودی تسلسل میں اچانک تبدیلیاں پیدا کر سکتی ہیں، جو ڈرائیوروں اور مسافروں کے لیے غیر آرام دہ ہو سکتی ہیں۔ مناسب منحنی کی لمبائی ڈیزائن کی رفتار، گریڈ کے فرق، اور سائٹ کی حدود پر منحصر ہوتی ہے۔
ریاضیاتی طور پر، ایک عمودی منحنی کی صفر لمبائی نہیں ہو سکتی کیونکہ یہ گریڈ میں فوری تبدیلی پیدا کرے گی، جو کہ ایک منحنی نہیں ہے۔ عملی طور پر، بہت چھوٹی عمودی منحنیات کم رفتار کے ماحول میں استعمال کی جا سکتی ہیں، لیکن انہیں ہموار منتقلی فراہم کرنے کے لیے کافی لمبائی ہونی چاہیے۔
عمودی منحنیات سڑکوں پر پانی کے بہاؤ کی سمت اور رفتار کو متاثر کرتی ہیں۔ کریسٹ منحنیات عام طور پر پانی کو اونچے نقطے سے دور کرنے کی اجازت دیتی ہیں۔ سَگ منحنیات نیچے کے نقطے پر ممکنہ نکاسی کے مسائل پیدا کر سکتی ہیں، اکثر اضافی نکاسی کے ڈھانچے جیسے کہ انلیٹس یا ندیوں کی ضرورت ہوتی ہے۔
ایک معیاری متوازن عمودی منحنی میں، PVC PVI سے نصف منحنی کی لمبائی کے فاصلے پر ہوتا ہے، اور PVT PVI سے نصف منحنی کی لمبائی کے فاصلے پر ہوتا ہے۔
جدید عمودی منحنیات کے حسابات جب صحیح طریقے سے کیے جائیں تو انتہائی درست ہو سکتے ہیں۔ تاہم، تعمیراتی رواداری، میدان کی حالتیں، اور حسابات میں گولائی چھوٹے تغیرات متعارف کر سکتی ہیں۔ زیادہ تر عملی مقاصد کے لیے، بلندیوں کے لیے قریب ترین سینٹی میٹر یا سوویں فٹ تک حسابات کافی ہیں۔
یہاں مختلف پروگرامنگ زبانوں میں عمودی منحنیات کے پیرامیٹرز کے حسابات کی مثالیں ہیں:
1' ایکسل VBA فنکشن جو عمودی منحنی پر کسی بھی نقطے پر بلندی کا حساب لگاتا ہے
2Function VerticalCurveElevation(initialGrade, finalGrade, curveLength, pvcStation, pvcElevation, queryStation)
3 ' گریڈز کو فیصد سے اعشاری شکل میں تبدیل کریں
4 Dim g1 As Double
5 Dim g2 As Double
6 g1 = initialGrade / 100
7 g2 = finalGrade / 100
8
9 ' گریڈز میں الجبرائی فرق کا حساب لگائیں
10 Dim A As Double
11 A = g2 - g1
12
13 ' PVC سے فاصلے کا حساب لگائیں
14 Dim x As Double
15 x = queryStation - pvcStation
16
17 ' چیک کریں کہ اسٹیشن منحنی کی حدود میں ہے
18 If x < 0 Or x > curveLength Then
19 VerticalCurveElevation = "منحنی کی حدود سے باہر"
20 Exit Function
21 End If
22
23 ' عمودی منحنی کے مساوات کا استعمال کرتے ہوئے بلندی کا حساب لگائیں
24 Dim elevation As Double
25 elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength)
26
27 VerticalCurveElevation = elevation
28End Function
29
30' K کی قیمت کا حساب لگانے کے لیے فنکشن
31Function KValue(curveLength, initialGrade, finalGrade)
32 KValue = curveLength / Abs(finalGrade - initialGrade)
33End Function
34
1import math
2
3def calculate_k_value(curve_length, initial_grade, final_grade):
4 """عمودی منحنی کی K کی قیمت کا حساب لگائیں۔"""
5 grade_change = abs(final_grade - initial_grade)
6 if grade_change < 0.0001: # صفر سے تقسیم سے بچیں
7 return float('inf')
8 return curve_length / grade_change
9
10def calculate_curve_type(initial_grade, final_grade):
11 """طے کریں کہ منحنی کریسٹ، سَگ، یا کچھ اور ہے۔"""
12 if initial_grade > final_grade:
13 return "کریسٹ"
14 elif initial_grade < final_grade:
15 return "سَگ"
16 else:
17 return "کچھ نہیں"
18
19def calculate_elevation_at_station(station, initial_grade, final_grade,
20 pvi_station, pvi_elevation, curve_length):
21 """عمودی منحنی کے ساتھ کسی بھی اسٹیشن پر بلندی کا حساب لگائیں۔"""
22 # PVC اور PVT اسٹیشن کا حساب لگائیں
23 pvc_station = pvi_station - curve_length / 2
24 pvt_station = pvi_station + curve_length / 2
25
26 # چیک کریں کہ اسٹیشن منحنی کی حدود میں ہے
27 if station < pvc_station or station > pvt_station:
28 return None # منحنی کی حدود سے باہر
29
30 # PVC کی بلندی کا حساب لگائیں
31 g1 = initial_grade / 100 # اعشاری شکل میں تبدیل کریں
32 g2 = final_grade / 100 # اعشاری شکل میں تبدیل کریں
33 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
34
35 # PVC سے فاصلے کا حساب لگائیں
36 x = station - pvc_station
37
38 # گریڈز میں الجبرائی فرق کا حساب لگائیں
39 A = g2 - g1
40
41 # عمودی منحنی کے مساوات کا استعمال کرتے ہوئے بلندی کا حساب لگائیں
42 elevation = pvc_elevation + g1 * x + (A * x * x) / (2 * curve_length)
43
44 return elevation
45
46def calculate_high_low_point(initial_grade, final_grade, pvi_station,
47 pvi_elevation, curve_length):
48 """عمودی منحنی کا اونچا یا نیچا نقطہ حساب کریں اگر یہ موجود ہو۔"""
49 g1 = initial_grade / 100
50 g2 = final_grade / 100
51
52 # اونچا/نیچا نقطہ صرف اس صورت میں موجود ہوتا ہے جب گریڈز کے نشانات مختلف ہوں
53 if g1 * g2 >= 0 and g1 != 0:
54 return None
55
56 # PVC سے اونچے/نیچے کے نقطے تک فاصلے کا حساب لگائیں
57 pvc_station = pvi_station - curve_length / 2
58 x = -g1 * curve_length / (g2 - g1)
59
60 # چیک کریں کہ اونچا/نیچا نقطہ منحنی کی حدود میں ہے
61 if x < 0 or x > curve_length:
62 return None
63
64 # اونچے/نیچے کے نقطے کا اسٹیشن کا حساب لگائیں
65 hl_station = pvc_station + x
66
67 # PVC کی بلندی کا حساب لگائیں
68 pvc_elevation = pvi_elevation - (g1 * curve_length / 2)
69
70 # اونچے/نیچے کے نقطے پر بلندی کا حساب لگائیں
71 A = g2 - g1
72 hl_elevation = pvc_elevation + g1 * x + (A * x * x) / (2 * curve_length)
73
74 return {"station": hl_station, "elevation": hl_elevation}
75
1/**
2 * عمودی منحنی کے لیے K کی قیمت کا حساب لگائیں
3 * @param {number} curveLength - عمودی منحنی کی لمبائی میٹر میں
4 * @param {number} initialGrade - ابتدائی گریڈ فیصد میں
5 * @param {number} finalGrade - آخری گریڈ فیصد میں
6 * @returns {number} K کی قیمت
7 */
8function calculateKValue(curveLength, initialGrade, finalGrade) {
9 const gradeChange = Math.abs(finalGrade - initialGrade);
10 if (gradeChange < 0.0001) {
11 return Infinity; // برابر گریڈز کے لیے
12 }
13 return curveLength / gradeChange;
14}
15
16/**
17 * عمودی منحنی کی قسم طے کریں
18 * @param {number} initialGrade - ابتدائی گریڈ فیصد میں
19 * @param {number} finalGrade - آخری گریڈ فیصد میں
20 * @returns {string} منحنی کی قسم: "کریسٹ"، "سَگ"، یا "کچھ نہیں"
21 */
22function determineCurveType(initialGrade, finalGrade) {
23 if (initialGrade > finalGrade) {
24 return "کریسٹ";
25 } else if (initialGrade < finalGrade) {
26 return "سَگ";
27 } else {
28 return "کچھ نہیں";
29 }
30}
31
32/**
33 * عمودی منحنی کے ساتھ کسی بھی اسٹیشن پر بلندی کا حساب لگائیں
34 * @param {number} station - سوال اسٹیشن
35 * @param {number} initialGrade - ابتدائی گریڈ فیصد میں
36 * @param {number} finalGrade - آخری گریڈ فیصد میں
37 * @param {number} pviStation - PVI اسٹیشن
38 * @param {number} pviElevation - PVI بلندی میٹر میں
39 * @param {number} curveLength - عمودی منحنی کی لمبائی میٹر میں
40 * @returns {number|null} اسٹیشن پر بلندی یا منحنی کی حدود سے باہر ہونے پر null
41 */
42function calculateElevationAtStation(
43 station,
44 initialGrade,
45 finalGrade,
46 pviStation,
47 pviElevation,
48 curveLength
49) {
50 // PVC اور PVT اسٹیشن کا حساب لگائیں
51 const pvcStation = pviStation - curveLength / 2;
52 const pvtStation = pviStation + curveLength / 2;
53
54 // چیک کریں کہ اسٹیشن منحنی کی حدود میں ہے
55 if (station < pvcStation || station > pvtStation) {
56 return null; // منحنی کی حدود سے باہر
57 }
58
59 // گریڈز کو اعشاری شکل میں تبدیل کریں
60 const g1 = initialGrade / 100;
61 const g2 = finalGrade / 100;
62
63 // PVC کی بلندی کا حساب لگائیں
64 const pvcElevation = pviElevation - (g1 * curveLength / 2);
65
66 // PVC سے فاصلے کا حساب لگائیں
67 const x = station - pvcStation;
68
69 // گریڈز میں الجبرائی فرق کا حساب لگائیں
70 const A = g2 - g1;
71
72 // عمودی منحنی کے مساوات کا استعمال کرتے ہوئے بلندی کا حساب لگائیں
73 const elevation = pvcElevation + g1 * x + (A * x * x) / (2 * curveLength);
74
75 return elevation;
76}
77
1public class VerticalCurveCalculator {
2 /**
3 * عمودی منحنی کے لیے K کی قیمت کا حساب لگائیں
4 * @param curveLength عمودی منحنی کی لمبائی میٹر میں
5 * @param initialGrade ابتدائی گریڈ فیصد میں
6 * @param finalGrade آخری گریڈ فیصد میں
7 * @return K کی قیمت
8 */
9 public static double calculateKValue(double curveLength, double initialGrade, double finalGrade) {
10 double gradeChange = Math.abs(finalGrade - initialGrade);
11 if (gradeChange < 0.0001) {
12 return Double.POSITIVE_INFINITY; // برابر گریڈز کے لیے
13 }
14 return curveLength / gradeChange;
15 }
16
17 /**
18 * عمودی منحنی کی قسم طے کریں
19 * @param initialGrade ابتدائی گریڈ فیصد میں
20 * @param finalGrade آخری گریڈ فیصد میں
21 * @return منحنی کی قسم: "کریسٹ"، "سَگ"، یا "کچھ نہیں"
22 */
23 public static String determineCurveType(double initialGrade, double finalGrade) {
24 if (initialGrade > finalGrade) {
25 return "کریسٹ";
26 } else if (initialGrade < finalGrade) {
27 return "سَگ";
28 } else {
29 return "کچھ نہیں";
30 }
31 }
32
33 /**
34 * PVC اسٹیشن اور بلندی کا حساب لگائیں
35 * @param pviStation PVI اسٹیشن
36 * @param pviElevation PVI بلندی میٹر میں
37 * @param initialGrade ابتدائی گریڈ فیصد میں
38 * @param curveLength عمودی منحنی کی لمبائی میٹر میں
39 * @return PVC کا اسٹیشن اور بلندی پر مشتمل آبجیکٹ
40 */
41 public static Point calculatePVC(double pviStation, double pviElevation,
42 double initialGrade, double curveLength) {
43 double station = pviStation - curveLength / 2;
44 double elevation = pviElevation - (initialGrade / 100) * (curveLength / 2);
45 return new Point(station, elevation);
46 }
47
48 /**
49 * PVT اسٹیشن اور بلندی کا حساب لگائیں
50 * @param pviStation PVI اسٹیشن
51 * @param pviElevation PVI بلندی میٹر میں
52 * @param finalGrade آخری گریڈ فیصد میں
53 * @param curveLength عمودی منحنی کی لمبائی میٹر میں
54 * @return PVT کا اسٹیشن اور بلندی پر مشتمل آبجیکٹ
55 */
56 public static Point calculatePVT(double pviStation, double pviElevation,
57 double finalGrade, double curveLength) {
58 double station = pviStation + curveLength / 2;
59 double elevation = pviElevation + (finalGrade / 100) * (curveLength / 2);
60 return new Point(station, elevation);
61 }
62
63 /**
64 * اسٹیشن اور بلندی کی نمائندگی کرنے کے لیے اندرونی کلاس
65 */
66 public static class Point {
67 public final double station;
68 public final double elevation;
69
70 public Point(double station, double elevation) {
71 this.station = station;
72 this.elevation = elevation;
73 }
74 }
75}
76
ایک ہائی وے ڈیزائن کے لیے عمودی منحنی کی ضرورت ہوتی ہے تاکہ +3% گریڈ سے -2% گریڈ میں منتقلی کی جا سکے۔ PVI اسٹیشن 1000+00 پر ہے جس کی بلندی 150.00 میٹر ہے۔ ڈیزائن کی رفتار 100 کلومیٹر فی گھنٹہ ہے، جو کہ ڈیزائن کے معیارات کے مطابق کم از کم K کی قیمت 80 کی ضرورت ہے۔
مرحلہ 1: کم از کم منحنی کی لمبائی کا حساب لگائیں
آپ کے ورک فلو کے لیے مفید ہونے والے مزید ٹولز کا انعام کریں