নিয়মিত, এন-পার্শ্বযুক্ত বহুভুজের কোণগুলি তৈরির জন্য অ্যালগরিদম


10

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

তাহলে আমি কোথায় এমন অ্যালগরিদম খুঁজে পাব?


2
আমাকে গুগলে আপনার বিশ্বাস পুনরুদ্ধার করতে দিন। ;-) "অ্যালগোরিদম নিয়মিত বহুভুজ" এর জন্য চতুর্থ হিট: গেমদেব.ট. / টপিক / "" তারপর, মৌলিক ত্রিকোণমিতি ব্যবহার করে, বৃত্তের পরিধিটির চারপাশে সমানভাবে বিভক্ত এন পয়েন্টগুলি বেছে নিয়েছেন (যেমন - যদি এনটি 3 হয়, তবে 3 পয়েন্ট বেছে নিয়েছেন পরিধি যা একে অপরের থেকে ১২০ ডিগ্রি আলাদা)। যা কেভিনের কোডটি ঠিক তাই করে।
এরিক

উত্তর:


15

অন্তর্ভুক্ত iথেকে যাওয়ার সাথে 0 to n-1:

pointX[i] = ( sin( i / n * 2 * PI ) * radius ) + xOffset;
pointY[i] = ( cos( i / n * 2 * PI ) * radius ) + yOffset;

সম্পাদনা করুন: লার্স ভিক্লুন্ড মন্তব্যে যেমন উল্লেখ করেছেন, এটি জাভাস্ক্রিপ্টের মতো ভাষায় কেবল নিরাপদ যেখানে পূর্ণসংখ্যা বিভাগের পরিবর্তে পূর্ণসংখ্যার পরিবর্তে একটি ভাসমান পয়েন্ট সংখ্যা প্রদান করে। অন্যান্য ভাষায় আপনার প্রথমে iএকটি ফ্লোটে কাস্ট করা উচিত ।


3
আই / এন-তে এমন অবিচ্ছেদ্য বিভাগের ফাঁদগুলিতে সাবধান থাকুন যেখানে বিভাজক পূর্ণসংখ্যা পূর্ণসংখ্যা দেয়।
লার্স ভিক্লুন্ড

আঃ একটি খুব ভাল বিষয়, আমি উত্তরে সেই সতর্কবাণী যুক্ত করব।
এলভা

এটি বলার অপেক্ষা রাখে না, তবে আপনি যেখানে n * 2 * PI == 0বা আপনার একটি অসুখী বহুভুজ পাবেন সেই মামলার বিরুদ্ধেও রক্ষা করতে চাইবেন :(।
জ্যাক দ্য হিউম্যান

অদ্ভুত একমাত্র n কে বাদ দিয়ে n * 2 * PI == 0আমি 0 এর সাথে ভাবতে পারি, যা আমি যতদূর জানি অপরিজ্ঞাত, i / 0 এর সমান তাই কোন সমস্যা তাই না? :)
এলভা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.