এলোমেলো পুল বা হ্রদ তৈরি করা


9

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


আমি বেজিয়ার কার্ভগুলি সন্ধান করছি, মনে হচ্ছে এটি থেকে আমি একটি হ্রদ তৈরি করতে সক্ষম হব। 2 ডি অ্যারেতে তাদের সাথে কারও অভিজ্ঞতা আছে?
ম্যান্ডেরিন 87

উত্তর:


8

পাশাপাশি পার্লিন গোলমাল উল্লেখ করেছেন। বহুভুজ মানচিত্র জেনারেটরের জন্য আমি কীভাবে দ্বীপটির আকার তৈরি করেছি:

  1. পার্লিন শব্দটি উত্পন্ন করুন।
  2. প্রতিটি অবস্থানের জন্য (x, y)গোলমাল বিটম্যাপ এ, গনা কেন্দ্র থেকে দূরত্ব, তাই স্বাভাবিক যে বিটম্যাপ 2x2 হল: (dx, dy) = (2 * x / width - 1, 2 * y / height - 1); d = sqrt(dx*dx + dy*dy)
  3. অবস্থানটি (x, y)দ্বীপের অংশ যদি হয় noise[x, y] > 0.3 + 0.4*d*d। এই পদক্ষেপটি কেন্দ্র থেকে দূরের অঞ্চলগুলিকে কেটে দিয়ে আকারটি গোল করার চেষ্টা করে।

দ্বীপপুঞ্জগুলি হ্রদের তুলনায় কিছুটা বেশি রাগযুক্ত, সুতরাং এই আকারগুলি আপনার পছন্দ অনুসারে হবে কিনা তা আমি নিশ্চিত নই। দুটি যাদুর সংখ্যা নিয়ন্ত্রণ করতে নীচে বোতামগুলি সহ আমি উপরের অ্যালগরিদমের একটি ডেমো রেখেছি । ০.০ এবং ০.৪ ও ম্যাজিক সংখ্যাগুলির বিভিন্ন মান থাকতে পারে যা আপনার পছন্দ মতো আকার তৈরি করে।


2
আপনার কাজ একটি প্রধান অনুপ্রেরণা, অমিত। আমি যদি 5 বছর বা তারও বেশি অবাক করে ও উপভোগ করতে পারি তবে আমি আপনার ব্লগটি পড়ে 10
ইঞ্জিনিয়ার

4

আপনার জন্য হ্রদ তৈরি করতে আপনি পার্লিন নয়েজ অ্যালগরিদম ব্যবহার করতে পারেন, যদি আপনি উপরের নীচের দৃশ্যটি ব্যবহার করেন (বহুভুজ আকৃতি, আপনার মতো মনে হচ্ছে), স্ট্যানফোর্ডের এই লোকটি ঠিক সেটাই করেছিল।

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/


1
"স্ট্যানফোর্ডের সেই লোক" এফওয়াইআইয়ের এই সাইটের একজন ব্যবহারকারী।
ইঞ্জিনিয়ার

কে না? =) আমি কিছু শব্দ (পার্লিন, ফ্র্যাক্টাল) থেকে শুরু করতে পারি, তবে কম "জাগি" ফলাফলের জন্য ঝাপসা ফলাফল। দুর্দান্ত নিবন্ধ, বিটিডব্লিউ - তিনি কীভাবে নদীগুলি করেন তা ভালোবাসুন।
জারি কম্প্পা

0

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

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

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