আমার 2 ডি জগতের এক বিন্দু থেকে অন্য বিন্দুতে যেখানে প্রান্তগুলি মোড়ানো রয়েছে (যেমন গ্রহাণু ইত্যাদি) এর সবচেয়ে কম দূরত্বের দিকটি খুঁজে পেতে হবে। আমি কীভাবে সবচেয়ে কম দূরত্ব খুঁজে পেতে জানি তবে এটি কোন দিকে রয়েছে তা খুঁজে পেতে লড়াই করে যাচ্ছি ling
সংক্ষিপ্ততম দূরত্বটি দিয়েছেন:
int rows = MapY;
int cols = MapX;
int d1 = abs(S.Y - T.Y);
int d2 = abs(S.X - T.X);
int dr = min(d1, rows-d1);
int dc = min(d2, cols-d2);
double dist = sqrt((double)(dr*dr + dc*dc));
বিশ্বের উদাহরণ
:
: T
:
:--------------:---------
: :
: S :
: :
: :
: T :
: :
:--------------:
চিত্রটিতে প্রান্তগুলি: এবং - এর সাথে প্রদর্শিত হয়। আমি ডানদিকেও বিশ্বের একটি মোড়ানো পুনরাবৃত্তি দেখিয়েছি। আমি এস থেকে টি ডিগ্রিগুলির মধ্যে দিকটি খুঁজতে চাই। সুতরাং সবচেয়ে কম দূরত্বটি টি এর উপরের ডানদিকে পুনরাবৃত্তি হয় তবে আমি কীভাবে এস থেকে নিম্ন ডানদিকে পুনরাবৃত্তি টিতে অবনমিত দিকটি গণনা করব?
আমি এস এবং টি উভয়ের অবস্থান জানি কিন্তু আমার ধারণা আমি পুনরাবৃত্তি টি এর অবস্থানটি যদিও সেখানে 1 এরও বেশি খুঁজে পেতে হবে।
ওয়ার্ল্ডস কোঅর্ডিনেট সিস্টেমটি শীর্ষে বাম দিকে 0,0 থেকে শুরু হয় এবং পশ্চিমে দিকের জন্য 0 ডিগ্রি হতে পারে।
দেখে মনে হচ্ছে এটি খুব কঠিন হওয়া উচিত নয় তবে আমি কোনও সমাধান বের করতে সক্ষম হয়েছি না। আমি আশা করি সোমোন সাহায্য করতে পারে? যে কোনও ওয়েবসাইট প্রশংসা করা হবে।