আমি বরং চোখের রে এর পরিবর্তে ছায়ার রশ্মি নিক্ষেপ করব।
আসুন বলি এটি আপনার দেখার অঞ্চল (সম্ভাব্য দৃশ্যমান অঞ্চল)
######################
#####.............####
###................###
##..................##
#....................#
#....................#
#..........@.........#
#....................#
#....................#
##..................##
###................###
#####.............####
######################
# টি ব্লকটি দৃশ্যমান নয় যখন। দৃশ্যমান হয়
এক্স কিছু বাধা রাখা যাক:
######################
#####.............####
###................###
##.....X.....XXX....##
#......X.......X.....#
#...X.XX.............#
#...X......@.........#
#...X..........X.....#
#...XXXXXX...........#
##..................##
###....X...........###
#####.............####
######################
আপনার কাছে এক্সের একটি তালিকা রয়েছে যা দেখার ক্ষেত্রের মধ্যে রয়েছে তারপরে আপনি এই প্রতিবন্ধকের প্রতিটিটির পিছনে থাকা প্রতিটি টাইলকে লুকিয়ে রেখে চিহ্নিত করেছেন: যখন কোনও বাধা লুকানো হিসাবে চিহ্নিত করা হয়, আপনি তালিকা থেকে সরিয়ে ফেলুন।
######################
#####.............####
###................###
##.....X.....XXX....##
#......X.......X.....#
#...X.XX.............#
#...X......@.........#
#...X..........X.....#
#...XXXXX*...........#
##......##..........##
###....*#..........###
#####.###.........####
######################
উপরের উদাহরণে আপনি নীচের প্রাচীরের ডানদিকের পাশের ছায়াটি দেখতে পাচ্ছেন এবং কীভাবে এই ছায়াটি আপনাকে পরীক্ষা করতে হবে এমন বাধা তালিকা থেকে লুকানো বাধা মুছে ফেলবে (এক্স চেক করতে হবে; * পরীক্ষা করা হয়েছে)।
আপনি যদি কিছু বাইনারি পার্টিটন ব্যবহার করে তালিকাটি সাজান তবে কোসস্ট এক্সটি প্রথমে পরীক্ষা করা হয় আপনি নিজের চেকটি কিছুটা গতি বাড়িয়ে তুলতে পারেন।
আপনি একবারে এক্স এর ব্লক চেক করতে "নেভাল ব্যাটেলস" অ্যালগরিদম ব্যবহার করতে পারেন (মূলত একটি অ্যাডিয়াসেন্ট এক্স এর সন্ধান যা একটি ছায়া শঙ্কুকে আরও প্রশস্ত করতে পারে)
[Edit]
সঠিকভাবে একটি ছায়া castালাই করার জন্য দুটি রশ্মির প্রয়োজন হয় এবং যেহেতু একটি টালি আয়তক্ষেত্রাকার হয় তাই উপলব্ধ প্রতিসাম্য ব্যবহার করে প্রচুর অনুমান করা যায় done
বাধা টাইলের চারপাশে একটি সাধারণ স্পেস পার্টিশন ব্যবহার করে রশ্মি স্থানাঙ্কগুলি গণনা করা যেতে পারে:
প্রতিটি আয়তক্ষেত্রাকৃতির অঞ্চলটি টাইলের কোণার কোনটি ছায়া শঙ্কু প্রান্ত হিসাবে নেওয়া উচিত সে সম্পর্কে একটি পছন্দ গঠন করে।
একাধিক সংলগ্ন টাইলস সংযোগ করতে এই যুক্তিটিকে আরও এগিয়ে দেওয়া যেতে পারে এবং অনুসরণ হিসাবে তাদের একটি একক প্রশস্ত শঙ্কু castালতে দিন।
প্রথম পদক্ষেপটি পর্যবেক্ষকের দিকের দিকে কোনও প্রতিবন্ধকতা না রয়েছে তা নিশ্চিত করা, সেক্ষেত্রে নিকটতম বাধা পরিবর্তে বিবেচিত:
যদি হলুদ টাইল বাধা হয় তবে টাইলটি নতুন লাল টাইল হয়।
এখন উপরের শঙ্কু প্রান্তটি বিবেচনা করুন:
নীল টাইলগুলি ছায়া শঙ্কুকে আরও বিস্তৃত করতে সমস্ত সম্ভাব্য প্রার্থী: যদি তাদের মধ্যে কমপক্ষে একটি অন্তরায় থাকে তবে আগের মতোই টাইলের চারপাশে স্পেস বিভাজন ব্যবহার করে রশ্মি সরিয়ে নেওয়া যেতে পারে।
সবুজ টালি কেবলমাত্র প্রার্থী যদি পর্যবেক্ষক কমলা লাইনের উপরে থাকে তবে:
একইটি অন্য কিরণের জন্য এবং লাল বাধা সম্পর্কে পর্যবেক্ষকের অন্যান্য অবস্থানগুলির জন্য দাঁড়িয়েছে।
অন্তর্নিহিত ধারণাটি প্রতিটি শঙ্কু ingালাইয়ের পক্ষে যতটা সম্ভব অঞ্চল কভার করা এবং চেক করতে বাধাগুলির তালিকা যত দ্রুত সম্ভব সংক্ষিপ্ত করা।