আমি এখানে কোডপ্লেক্স.কম-এ হেক্স-গ্রিড ইউটিউটের একটি লাইব্রেরি পোস্ট করেছি:
https://hexgridutilities.codeplex.com/
লাইব্রেরিতে পাথ সন্ধান (এ- * একটি লা এরিক লিপার্ট ব্যবহার করে) অন্তর্ভুক্ত রয়েছে এবং এর মধ্যে স্বয়ংক্রিয় রূপান্তরকরণের জন্য ইউটিউটিস অন্তর্ভুক্ত রয়েছে জ্যাগড (চিহ্নিত ব্যবহারকারী) কর্ডিনেটস এবং নন-জ্যাগড (ক্যানোনিকাল হিসাবে পরিচিত) স্থানাঙ্ক। পাথ-সন্ধানকারী অ্যালগরিদম প্রতিটি নোডের জন্য পদক্ষেপ ব্যয়কে এন্ট্রি হেক্স এবং টে ট্র্যাভার্সড হেক্স-সাইড উভয়ের সাথে পরিবর্তিত করতে দেয় (যদিও প্রদত্ত উদাহরণটি সহজ)। এছাড়াও, ছায়া-ingালাই ব্যবহার করে এলিভেটেড ফিল্ড অফ দ্য ভিউ সরবরাহ করা হয়েছে, [সম্পাদনা করুন: শব্দগুলি সরানো হয়েছে]।
এখানে একটি কোড নমুনা যা তিনটি হেক্স-গ্রিড স্থানাঙ্ক সিস্টেমের মধ্যে সহজেই রূপান্তরিত করে:
static readonly IntMatrix2D MatrixUserToCanon = new IntMatrix2D(2,1, 0,2, 0,0, 2);
IntVector2D VectorCanon {
get { return !isCanonNull ? vectorCanon : VectorUser * MatrixUserToCanon / 2; }
set { vectorCanon = value; isUserNull = isCustomNull = true; }
} IntVector2D vectorCanon;
bool isCanonNull;
static readonly IntMatrix2D MatrixCanonToUser = new IntMatrix2D(2,-1, 0,2, 0,1, 2);
IntVector2D VectorUser {
get { return !isUserNull ? vectorUser
: !isCanonNull ? VectorCanon * MatrixCanonToUser / 2
: VectorCustom * MatrixCustomToUser / 2; }
set { vectorUser = value; isCustomNull = isCanonNull = true; }
} IntVector2D vectorUser;
bool isUserNull;
static IntMatrix2D MatrixCustomToUser = new IntMatrix2D(2,0, 0,-2, 0,(2*Height)-1, 2);
static IntMatrix2D MatrixUserToCustom = new IntMatrix2D(2,0, 0,-2, 0,(2*Height)-1, 2);
IntVector2D VectorCustom {
get { return !isCustomNull ? vectorCustom : VectorUser * MatrixUserToCustom / 2; }
set { vectorCustom = value; isCanonNull = isUserNull = true; }
} IntVector2D vectorCustom;
bool isCustomNull;
ইন্টারমেট্রেক্স 2 ডি এবং ইন্টভেক্টর 2 ডি হ'ল অ্যাফাইন 2 ডি গ্রাফিক্স ভেক্টর এবং ম্যাট্রিক্সের পূর্ণসংখ্যা বাস্তবায়ন [সম্পাদনা করুন: সমজাতীয়]। ভেক্টর অ্যাপ্লিকেশনগুলিতে 2 দ্বারা চূড়ান্ত বিভাজনটি ভেক্টরগুলিকে পুনরায় সাধারণকরণ করা হয়; এটি অন্তর্মাত্রিক 2 ডি বাস্তবায়নে সমাহিত হতে পারে তবে তারপরে ইন্টম্যাট্রিক্স 2 ডি নির্মাণকারীদের 7 তম যুক্তির কারণ কম স্পষ্ট। অ-বর্তমান সূত্রগুলির সম্মিলিত ক্যাচিং এবং অলস-মূল্যায়ন নোট করুন।
এই ম্যাট্রিকগুলি মামলার জন্য:
- হেক্স শস্য উল্লম্ব;
- ক্যানোনিকাল এবং ব্যবহারকারী স্থানাঙ্কের জন্য উপরের-বামে উত্স, কাস্টম স্থানাঙ্কের জন্য নীচে-বামে;
- Y- অক্ষগুলি উল্লম্বভাবে নীচে;
- আনুভূমিকভাবে আয়তক্ষেত্রাকার এক্স-অক্ষ; এবং
- ক্যানোনিকাল এক্স-অক্ষটি উত্তর-পূর্বের (যেমন উপরে এবং ডানদিকে, ওয়াই-অক্ষ থেকে 120 ডিগ্রি সিসিডাব্লু)।
উপরে উল্লিখিত কোড লাইব্রেরি হেক্স-বাছাইয়ের জন্য একই ধরণের মার্জিত মেকানিজম সরবরাহ করে (অর্থাত্ মাউস ক্লিকের সাহায্যে নির্বাচিত হেক্স চিহ্নিত করা)।
ক্যানোনিকাল স্থানাঙ্কগুলিতে, জেগানো স্থানাঙ্কগুলির অসম্পূর্ণতা ছাড়াই 6 টি মূল নির্দেশিকা-ভেক্টর হ'ল (1,0), (0,1), (1,1) এবং সমস্ত হেক্সাগনের জন্য তাদের বিপরীতমুখী।