দুটি বৃত্তের ছেদটি গণনা করছেন?


29

আমি কীভাবে গাণিতিকভাবে পৃথিবীর পৃষ্ঠের দুটি ছেদকারী বৃত্তের সাধারণ পয়েন্টগুলি কেন্দ্রের ল্যাট / লোন এবং প্রতিটি পয়েন্টের জন্য একটি ব্যাসার্ধের উত্পন্ন করতে পারি তা বোঝার চেষ্টা করছি।

উদাহরণস্বরূপ, প্রদত্ত:

  • ল্যাট / লন (37.673442, -90.234036) ব্যাসার্ধ 107.5 এনএম
  • ল্যাট / লন (36.109997, -90.953669) ব্যাসার্ধ 145 এনএম

আমার দুটি ছেদ পয়েন্টগুলি খুঁজে পাওয়া উচিত যার মধ্যে একটি হ'ল (36.948, -088.158)।

ফ্ল্যাট প্লেনে এটি সমাধান করা তুচ্ছভাবে সহজ হবে তবে পৃথিবীর পৃষ্ঠের মতো কোনও অসম্পূর্ণ গোলকের সমীকরণ সমাধান করার অভিজ্ঞতা আমার নেই।


1
যদি আপনার সমস্ত রেডিয়াই এই ছোট হয়ে যায় (বেশ কয়েকটি কিলোমিটারেরও কম), তবে পৃথিবী এই স্কেলটিতে মূলত সমতল এবং আপনি পাশাপাশি একটি সঠিক, সাধারণ অভিক্ষেপ চয়ন করতে পারেন এবং সাধারণ ইউক্লিডিয়ান গণনা সম্পাদন করতে পারেন। নিশ্চিত হয়ে নিন যে আপনি ছেদটি তিনটি দশমিকেরও বেশি স্থানে গণনা করেছেন - তৃতীয় দশমিক স্থানে অদম্যতা আপনার রেডির যে কোনও একটির মতোই বড়!
whuber

1
আমার ইউনিট যুক্ত করা উচিত ছিল, সেই ব্যাসার্ধগুলি এনএম-তে থাকে তাই এটি এখনও পৃথিবীর পৃষ্ঠের তুলনায় সামান্য দূরত্বের তুলনায় তবে কয়েক কিলোমিটারের চেয়ে বড়। কীভাবে সেই স্কেলটি বিকৃতিকে প্রভাবিত করে? আমি <1nm এর কমের নিখুঁতভাবে কোনও সমাধান খুঁজে পাওয়ার চেষ্টা করছি, সুতরাং এটির জন্য খুব নির্ভুল হওয়া উচিত নয়। ধন্যবাদ!
উইল

এটি জেনে রাখা ভাল, কারণ এটি দেখায় যে আপনি পৃথিবীর একটি গোলাকার মডেল ব্যবহার করতে পারেন - আরও জটিল উপবৃত্তাকার মডেলগুলি অপ্রয়োজনীয়।
শুক্র

@ হুবার কি এই বোঝায় যে সমস্যাটি আবার পুনরুদ্ধার করা যেতে পারে: 3 টি গোলকের ছেদটি খুঁজে নিন যেখানে একটি গোলক পৃথিবী, এবং অন্য দুটি তার নিজ নিজ রেডির সাথে পয়েন্টগুলিতে কেন্দ্রীভূত?
কर्क কুইকেনডাল

@ কির্ক হ্যাঁ, পৃথিবীর পৃষ্ঠের একটি গোলাকৃতির মডেল ধরে ধরে এটি করার উপায় এটি। কিছু প্রাথমিক গণনার পরে যা এটি 3 ডি তে ত্রিপক্ষীয় সমস্যাটির একটি বিশেষ ক্ষেত্রে হ্রাস করে। (গণনার গোলাকার কর্ডগুলি, যা দুটি ছোট গোলকের ব্যাসার্ধ হয়ে বরাবর দূরত্ব থেকে গোলাকার পরিধির মধ্যে বরাবর ধর্মান্তরিত দূরত্ব প্রয়োজন হয়।)
whuber

উত্তর:


21

বিমানের চেয়ে গোলকের দিক থেকে এটি খুব বেশি শক্ত নয়, একবার আপনি এটি শনাক্ত করতে পারেন

  1. প্রশ্নগুলির বিষয়গুলি হল তিনটি গোলকের পারস্পরিক ছেদগুলি: প্রদত্ত ব্যাসার্ধের অবস্থান x1 (পৃথিবীর পৃষ্ঠের নীচে) নীচে কেন্দ্রিক একটি গোলক, প্রদত্ত ব্যাসার্ধের অবস্থান x2 (পৃথিবীর পৃষ্ঠে) এর নীচে কেন্দ্রিক একটি গোলক এবং পৃথিবী নিজেই , যা প্রদত্ত ব্যাসার্ধের O = (0,0,0) কেন্দ্রিক এক গোলক।

  2. পৃথিবীর পৃষ্ঠের সাথে প্রথম দুটি গোলকের প্রতিটি ছেদটি একটি বৃত্ত, যা দুটি প্লেনকে সংজ্ঞায়িত করে। তিনটি ক্ষেত্রের পারস্পরিক ছেদগুলি সুতরাং দুটি প্লেনের ছেদকে কেন্দ্র করে: একটি লাইন

ফলস্বরূপ, সমস্যাটি একটি গোলকের সাথে একটি রেখাকে ছেদ করতে কমে যায়, যা সহজ।


বিস্তারিত এখানে। ইনপুটগুলি পৃথিবীর পৃষ্ঠের পয়েন্ট পি 1 = (ল্যাট 1, লোন 1) এবং পি 2 = (ল্যাট 2, লোন 2) হয়, এটি একটি গোলক হিসাবে বিবেচিত হয় এবং দুটি সম্পর্কিত রেডিয়াই আর 1 এবং আর 2 হয়।

  1. রূপান্তর (ল্যাট, দীর্ঘ) থেকে (x, y, z) ভূ-কেন্দ্রিক স্থানাঙ্ক। যথারীতি, কারণ আমরা পরিমাপের একক বেছে নিতে পারি যেখানে পৃথিবীর একক ব্যাসার্ধ রয়েছে,

    x = cos(lon) cos(lat)
    y = sin(lon) cos(lat)
    z = sin(lat).
    

    উদাহরণস্বরূপ, পি 1 = (-90.234036 ডিগ্রি, 37.673442 ডিগ্রি) জিওসেন্ট্রিক স্থানাঙ্ক x1 = (-0.00323306, -0.7915, 0.61116) এবং পি 2 = (-90.953669 ডিগ্রি, 36.109997 ডিগ্রি) জেওসেন্ট্রিক স্থানাঙ্ক x444০ (০.০6475), , 0.589337)।

  2. গোলকটি r1 এবং r2 (যা গোলকের সাথে মাপা হয় )টিকে গোলকের সাথে কোণে রূপান্তর করুন। সংজ্ঞা অনুসারে, একটি নটিক্যাল মাইল (এনএম) হল 1/60 ডিগ্রি অর্ক (যা পাই / 180 * 1/60 = 0.0002908888 রেডিয়ান)। সুতরাং, কোণ হিসাবে,

    r1 = 107.5 / 60 Degree = 0.0312705 radian
    r2 = 145 / 60 Degree = 0.0421788 radian
    
  3. Geodesic ব্যাসার্ধ R1 বৃত্তের X1 কাছাকাছি একটি সঙ্গে ভূ-পৃষ্ঠ ছেদ হয় ইউক্লিডিয় ব্যাসার্ধ পাপের গোলক (R1) কোসাইন্ দিকে (R1) * X1 কেন্দ্রিক।

  4. কোস (আর 1) * x1 এর চারপাশে ব্যাসার্ধের পাপ (আর 1) এর ক্ষেত্রের ছেদ দ্বারা নির্ধারিত সমতল এবং পৃথিবীর পৃষ্ঠটি এক্স 1 এর সাথে লম্ব হয় এবং বিন্দু (r1) x1 এর মধ্য দিয়ে যায় , যেখানে এর সমীকরণটি x.x1 = cos হয় (r1) ("।" সাধারণ ডট পণ্য প্রতিনিধিত্ব করে ); একইভাবে অন্যান্য বিমানের জন্য। এই দুটি প্লেনের ছেদটিতে একটি অনন্য পয়েন্ট x0 হবে যা এক্স 1 এবং এক্স 2 এর লিনিয়ার সংমিশ্রণ। X0 = একটি x1 + b * x2 লিখতে দুটি প্ল্যানার সমীকরণ Writ

    cos(r1) = x.x1 = (a*x1 + b*x2).x1 = a + b*(x2.x1)
    cos(r2) = x.x2 = (a*x1 + b*x2).x2 = a*(x1.x2) + b
    

    X2.x1 = x1.x2, যা আমি q হিসাবে লিখব তা ব্যবহার করে সমাধানটি (যদি তা বিদ্যমান থাকে)

    a = (cos(r1) - cos(r2)*q) / (1 - q^2),
    b = (cos(r2) - cos(r1)*q) / (1 - q^2).
    

    চলমান উদাহরণে, আমি একটি = 0.973503 এবং খ = 0.0260194 গণনা করি।

    স্পষ্টতই আমাদের কিউ 2 ^ 2 প্রয়োজন = 1। এর অর্থ হল x1 এবং x2 একই পয়েন্ট বা অ্যান্টিপোডাল পয়েন্ট হতে পারে না।

  5. দুটি প্লেনের ছেদ রেখার অন্যান্য সমস্ত পয়েন্ট x0 থেকে ভেক্টর এন এর একাধিক দ্বারা পৃথক হয়েছে যা উভয় প্লেনের পারস্পরিকভাবে লম্ব। ক্রস পণ্য

    n = x1~Cross~x2
    

    কাজটি কী সরবরাহ করা হবে তা ননজারো: আবার, এর অর্থ এই যে x1 এবং x2 না কোনও কাকতালীয় বা ডায়ামেট্রিকভাবে বিপরীত। (ক্রস প্রোডাক্টকে উচ্চ নির্ভুলতার সাথে গণনা করার জন্য আমাদের যত্ন নেওয়া দরকার, কারণ এতে এক্স 1 এবং এক্স 2 একে অপরের কাছাকাছি থাকলে প্রচুর বাতিলকরণের সাথে বিয়োগগুলি জড়িত থাকে)) উদাহরণস্বরূপ, এন = (0.0272194, -0.00631254, -0.00803124) ।

  6. সুতরাং, আমরা x0 + t * n ফর্মের দুটি পয়েন্ট অবধি অনুসন্ধান করি যা পৃথিবীর পৃষ্ঠের উপরে অবস্থিত: অর্থাৎ, তাদের দৈর্ঘ্য সমান 1। সমান, তাদের স্কোয়ার দৈর্ঘ্য 1:

    1 = squared length = (x0 + t*n).(x0 + t*n) = x0.x0 + 2t*x0.n + t^2*n.n = x0.x0 + t^2*n.n
    

    X0.n সহ শব্দটি অদৃশ্য হয়ে যায় কারণ x0 (x1 এবং x2 এর লিনিয়ার সংমিশ্রণ) n এর সাথে লম্ব হয়। দুটি সমাধান সহজেই হয়

    t = sqrt((1 - x0.x0)/n.n)
    

    এবং এটি নেতিবাচক। আবার উচ্চ নির্ভুলতার জন্য বলা হয়, কারণ যখন এক্স 1 এবং এক্স 2 খুব কাছাকাছি থাকে তখন x0.x0 1 এর খুব কাছাকাছি থাকে, ফলে ভাসমান পয়েন্ট যথার্থতা কিছুটা হ্রাস পায়। উদাহরণস্বরূপ, টি = 1.07509 বা টি = -1.07509। ছেদ দুটি পয়েন্ট সুতরাং সমান

    x0 + t*n = (0.0257661, -0.798332, 0.601666)
    x0 - t*n = (-0.0327606, -0.784759, 0.618935)
    
  7. অবশেষে, আমরা জিওসেন্ট্রিক (x, y, z) কে ভৌগলিক স্থানাঙ্কে রূপান্তর করে এই সমাধানগুলিকে আবার (ল্যাট, দীর্ঘ) রূপান্তর করতে পারি:

    lon = ArcTan(x,y)
    lat = ArcTan(Sqrt[x^2+y^2], z)
    

    দ্রাঘিমাংশের জন্য, -180 থেকে 180 ডিগ্রি সীমাতে সাধারণীকৃত আর্কট্যানজেন্ট রিটার্নিং মানগুলি ব্যবহার করুন (কম্পিউটিং অ্যাপ্লিকেশনগুলিতে, এই ফাংশনটি x এবং y উভয়কে কেবল y / x অনুপাতের চেয়ে আর্গুমেন্ট হিসাবে গ্রহণ করে ; কখনও কখনও এটি "ATan2" নামেও পরিচিত)।

    আমি দুটি সমাধান (-88.151426, 36.989311) এবং (-92.390485, 38.238380) চিত্রটিতে হলুদ বিন্দু হিসাবে দেখানো হয়েছে।

থ্রিডি ফিগার

অক্ষগুলি ভূ-কেন্দ্রিক (x, y, z) স্থানাঙ্ক প্রদর্শন করে। ধূসর প্যাচটি পৃথিবীর পৃষ্ঠের অংশ -৯৯ থেকে -8787 ডিগ্রি দ্রাঘিমাংশ, ৩৩ থেকে ৪০ ডিগ্রি অক্ষাংশ (এক ডিগ্রি গ্র্যাচিউল দিয়ে চিহ্নিত) is তিনটি ক্ষেত্রই দেখাতে পৃথিবীর উপরিভাগ আংশিক স্বচ্ছ করা হয়েছে। গণিত সমাধানগুলির যথার্থতা স্পষ্ট করে দেয় যে হলুদ পয়েন্টগুলি গোলকের ছেদগুলিতে কীভাবে বসে।


বিল, এটি দুর্দান্ত। যে কেউ এর প্রয়োগের চেষ্টা করছেন তার উপর ভিত্তি করে আপনি একটি স্পষ্টতা যোগ করতে পারেন। দ্বিতীয় ধাপে আপনি স্পষ্টভাবে ডিগ্রি থেকে রেডিয়ানে রূপান্তর দেবেন না।
জার্সি অ্যান্ডি

@ জার্সি আপনার প্রস্তাবিত সম্পাদনার জন্য আপনাকে ধন্যবাদ। অপ্রয়োজনীয়তা এড়াতে এবং সূত্রগুলি যথাসম্ভব পরিষ্কার করার জন্য আমি এটি কিছুটা পরিবর্তন করেছি। আপনি যে থ্রেডটি উল্লেখ করছেন সেটি পড়ে, আমি বিন্দুর পণ্যটি ব্যাখ্যা করার জন্য একটি লিঙ্কও প্রবেশ করিয়েছি।
হোয়বার

8

Ellipsoidal মামলা:

এই সমস্যাটি "মিডিয়ান লাইনস" হিসাবে সংজ্ঞায়িত সমুদ্রসীমা নির্ধারণের মধ্যে একটির সাধারণীকরণ এবং এই বিষয়ে একটি বিস্তৃত সাহিত্য রয়েছে। আমার এই সমস্যার সমাধান হ'ল সমতুল্য আজিমুথাল প্রজেকশনটি লাভ করা:

  1. ছেদ বিন্দুতে অনুমান
  2. সমমানের আজিমুথাল প্রক্ষেপণের কেন্দ্র হিসাবে এই অনুমানযুক্ত ছেদচিহ্নটি ব্যবহার করে দুটি বেস পয়েন্ট প্রজেক্ট করুন,
  3. 2 ডি প্রক্ষেপণ স্থানে ছেদ সমস্যাটি সমাধান করুন।
  4. এটি নতুন ছেদ পয়েন্টটি পুরানোটির থেকে অনেক দূরে, দ্বিতীয় ধাপে ফিরে যান।

এই অ্যালগরিদম চতুর্ভুজ রূপান্তরিত করে এবং একটি উপবৃত্তাকারে একটি সঠিক সমাধান দেয়। (সামুদ্রিক সীমানার ক্ষেত্রে যথাযথতা প্রয়োজন, যেহেতু এটি মাছ ধরা, তেল এবং খনিজ অধিকার নির্ধারণ করে))

জিওডেসিক্সের 14 অনুচ্ছেদে বিপ্লবের একটি উপবৃত্তাকারে সূত্র দেওয়া হয়েছে । উপবৃত্তাকার সমতুল্য আজিমুথাল প্রজেকশন জিওগ্রাফিকলিব সরবরাহ করেছেএলিপসয়েডের জন্য জিওডাসিক অনুমানগুলিতে একটি ম্যাটল্যাব সংস্করণ উপলব্ধ ।


+1 এটি একটি আশ্চর্যজনক কাগজ: আপনার বিনয়ের বিবরণ এখানে ন্যায়বিচার করে না।
হোবার

আরও দেখুন আমার খাটো "geodesics জন্য আলগোরিদিম" geodesics কাগজ dx.doi.org/10.1007/s00190-012-0578-z (বিনামূল্যে ডাউনলোড করুন!) প্লাস ত্রুটি-বিচ্যুতি এবং addenda এই কাগজপত্র জন্য geographiclib.sf.net/geod-addenda.html
সিএফকেকে

1

এটি করার জন্য এখানে কিছু আর কোড রয়েছে:

p1 <- cbind(-90.234036, 37.673442) 
p2 <- cbind(-90.953669, 36.109997 )

library(geosphere)
steps <- seq(0, 360, 0.1)
c1 <- destPoint(p1, steps, 107.5 * 1852)
c2 <- destPoint(p2, steps, 145 * 1852)

library(raster)
s1 <- spLines(c1)
s2 <- spLines(c2)

i <- intersect(s1, s2)
coordinates(i)

#        x        y
# -92.38241 38.24267
# -88.15830 36.98740

s <- bind(s1, s2)
crs(s) <- "+proj=longlat +datum=WGS84"
plot(s)
points(i, col='red', pch=20, cex=2)

1

@ হোবারের উত্তর অনুসরণ করে , এখানে কয়েকটি জাভা কোড রয়েছে যা দুটি কারণে কার্যকর:

  • এটি আর্কট্যান সম্পর্কিত একটি গোচা তুলে ধরেছে (জাভা এবং সম্ভবত অন্যান্য ভাষার জন্য?)
  • এটি @ ঝুঁকির উত্তরে উল্লিখিত নয় এমন একটি সহ সম্ভাব্য প্রান্তের মামলাগুলি পরিচালনা করে।

এটি অপ্টিমাইজড বা সম্পূর্ণ নয় (আমি এর মতো সুস্পষ্ট ক্লাস ছেড়ে দিয়েছি Point), তবে কৌশলটি করা উচিত।

public static List<Point> intersection(EarthSurfaceCircle c1, EarthSurfaceCircle c2) {

    List<Point> intersections = new ArrayList<Point>();

    // project to (x,y,z) with unit radius
    UnitVector x1 = UnitVector.toPlanar(c1.lat, c1.lon);
    UnitVector x2 = UnitVector.toPlanar(c2.lat, c2.lon);

    // convert radii to radians:
    double r1 = c1.radius / RadiusEarth;
    double r2 = c2.radius / RadiusEarth;

    // compute the unique point x0
    double q = UnitVector.dot(x1, x2);
    double q2 = q * q;
    if (q2 == 1) {
        // no solution: circle centers are either the same or antipodal
        return intersections;
    }
    double a = (Math.cos(r1) - q * Math.cos(r2)) / (1 - q2);
    double b = (Math.cos(r2) - q * Math.cos(r1)) / (1 - q2);
    UnitVector x0 = UnitVector.add(UnitVector.scale(x1, a), UnitVector.scale(x2, b));

    // we only have a solution if x0 is within the sphere - if not,
    // the circles are not touching.
    double x02 = UnitVector.dot(x0, x0);
    if (x02 > 1) {
        // no solution: circles not touching
        return intersections;
    }

    // get the normal vector:
    UnitVector n = UnitVector.cross(x1, x2);
    double n2 = UnitVector.dot(n, n);
    if (n2 == 0) {
        // no solution: circle centers are either the same or antipodal
        return intersections;
    }

    // find intersections:
    double t = Math.sqrt((1 - UnitVector.dot(x0, x0)) / n2);
    intersections.add(UnitVector.toPolar(UnitVector.add(x0, UnitVector.scale(n, t))));
    if (t > 0) {
        // there's only multiple solutions if t > 0
        intersections.add(UnitVector.toPolar(UnitVector.add(x0, UnitVector.scale(n, -t))));
    }
    return intersections;
}

এছাড়াও, গুরুত্বপূর্ণভাবে, এর ব্যবহারটি নোট করুন atan2- এটি আপনি @ হোবারের উত্তর থেকে কী প্রত্যাশা করেছিলেন তার বিপরীত (কেন জানি না, তবে এটি কার্যকর হয়):

    public static Point toPolar(UnitVector a) {
        return new Point(
                Math.toDegrees(Math.atan2(a.z, Math.sqrt(a.x * a.x + a.y * a.y))),
                Math.toDegrees(Math.atan2(a.y, a.x)));          
    }

0

@ উহবার উত্তরের জন্য 'আর' কোড ব্যবহার করা।

P1 <- c(37.673442, -90.234036)
P2 <- c(36.109997, -90.953669) 

#1 NM nautical-mile is 1852 meters
R1 <- 107.5
R2 <- 145

x1 <- c(
  cos(deg2rad(P1[2])) * cos(deg2rad(P1[1])),  
  sin(deg2rad(P1[2])) * cos(deg2rad(P1[1])),
  sin(deg2rad(P1[1]))
);

x2 <- c(
  cos(deg2rad(P2[2])) * cos(deg2rad(P2[1])),
  sin(deg2rad(P2[2])) * cos(deg2rad(P2[1])),
  sin(deg2rad(P2[1]))
);

r1 = R1 * (pi/180) * (1/60)
r2 = R2 * (pi/180) * (1/60)

q = dot(x1,x2)
a = (cos(r1) - cos(r2) * q) / (1 - q^2)
b = (cos(r2) - cos(r1) * q)/ (1 - q^2)

n <- cross(x1,x2)

x0 = a*x1 + b*x2


t = sqrt((1 - dot(x0, x0))/dot(n,n))

point1 = x0 + (t * n)
point2 = x0 - (t * n)

lat1 = rad2deg(atan2(point1[2] ,point1[1]))
lon1= rad2deg(asin(point1[3]))
paste(lat1, lon1, sep=",")

lat2 = rad2deg(atan2(point2[2] ,point2[1]))
lon2 = rad2deg(asin(point2[3]))
paste(lat2, lon2, sep=",")

-1

যদি চেনাশোনাগুলির একটি হ'ল নরটারস্টার, তবে ইউনিট গোলক সহ একটি সহজ উপায় রয়েছে।

আপনি নোর্টস্টার দিয়ে আপনার অক্ষাংশ পরিমাপ করতে পারেন। তারপরে এই ক্ষেত্রটিতে আপনার আপেক্ষিক অবস্থান রয়েছে। ভি 1 (0, সিন (লা), কোস (লা)) আপনি অন্য তারকা (স্টার 2) এর অবস্থান (কোণ) জানেন, আলমানাচ থেকে। v2 (sin (lo2) * cos (la2), sin (la2), cos (lo2) * cos (la2)) এর ভেক্টর। গোলকের সমীকরণ থেকে।

lo2 হ'ল আপেক্ষিক দ্রাঘিমাংশ। তার unknow

আপনার এবং স্টার 2 এর মধ্যবর্তী কোণটি আপনি খুব পরিমাপ করতে পারেন, (মি) এবং আপনি জানেন যে দুটি ইউনিট ভেক্টরের অভ্যন্তরীণ উত্পাদনটি মাঝের কোণ (কোণ)। cos (মি) = বিন্দু (v1, v2) আপনি এখন আপেক্ষিক দ্রাঘিমাংশ (lo2) গণনা করতে পারেন। lo2 = ACOS ((কোসাইন্ (ড) -sin (লা) * পাপ (la2)) / (কোসাইন্ (লা) * কোসাইন্ (la2)))

সর্বোপরি আপনি তারকা 2 এর আসল দ্রাঘিমাংশকে lo2 এ যুক্ত করুন। (বা সাব, এটি আপনার পূর্ব থেকে পূর্ব দিকে বা পূর্ব দিকে নির্ভর করুন lo) এখন 2 আপনার দ্রাঘিমাংশ।

আমার ইংরাজির জন্য দুঃখিত, আমি এই ভাষাটি কখনই শিখি না।


2 জিনিস: নর্থস্টার মানে পোল তারকা।

আরেকটি। কারণ কোণটি তুলনামূলকভাবে অনুভূমিক হিসাবে পরিমাপ করা হয়েছে, সর্বদা 90-কোণ সংশোধন প্রয়োজন। এটি মি কোণেও বৈধ।

PS: আসল কোণ অর্থ: তারকা অবস্থান - সময় সংশোধন।


এটি কীভাবে প্রশ্নের উত্তর দেয় তা স্পষ্ট নয়।
whuber
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.