আমি সম্ভবত এটি কীভাবে করব যাতে আমি কিছু শিল্প নিয়ন্ত্রণ বজায় রাখতে পারি এবং সম্ভবত এটি সঠিকভাবে পাওয়ার জন্য একটি পদ্ধতিগত পদ্ধতিতে সাময়িকভাবে চেষ্টা করার জন্য দীর্ঘ সময় ব্যয় না করা ...
প্রথমে, আপনার আর্টের "পুল" হিসাবে চা পাতার কুঁচকিতে ম্যানুয়ালি বেশ কয়েকটি স্প্রাইট তৈরি করুন - প্রতিটি কাপের চা পাতাগুলির মতো নয়, বরং আরও ছোট গ্রুপিংয়ের মতো। বলুন, তাদের মধ্যে 20 বা তাই?
তারপরে এগুলির একটি এলোমেলো সংখ্যা "কাপ" বেসে এলোমেলো স্থানাঙ্কে রাখুন। প্রত্যেককে একটি এলোমেলো ঘূর্ণন এবং স্কেল প্লাস এলোমেলো অনুভূমিক এবং / অথবা উল্লম্ব মিররিং দিন। এটি একটি ভাল ফলাফল তৈরি করা উচিত।
এই পদ্ধতির সাহায্যে স্বতন্ত্র ক্লাম্পগুলি নিজের পছন্দ মতো দেখতে তৈরি করতে শৈল্পিক স্বাধীনতা দেবে, যখন বিভিন্ন ধরণের ফলাফলের অনুমতি দেয় (যথেষ্ট পরিমাণে স্প্রিট বেছে নিতে পারে)।
অতিরিক্তভাবে, এটির (এবং পার্লিন শব্দ ভিত্তিক কোনও এলোমেলো পদ্ধতি সহ), আপনি প্রকৃত প্রারম্ভিক সময়ে প্রজননযোগ্য ফলাফল তৈরি করার জন্য একটি পরিচিত বীজের সাথে প্রক্রিয়া শুরু করার সময় এলোমেলো সংখ্যা জেনারেটর বীজ করতে পারেন। আপনি যদি বীজ সংরক্ষণ করেন তবে ক্রম শুরু হওয়ার ঠিক আগে পুনরায় গবেষণা করে আপনি ঠিক একই প্যাটার্নটি আবার তৈরি করতে সক্ষম হবেন। আপনি এমনকি মজাদার জিনিসগুলি করতে পারেন যেমন কেউ তাদের নামে টাইপ করুন, অক্ষরগুলিকে একটি সংখ্যায় পরিণত করুন (যোগফল এএসসিআইআই, ইত্যাদি), তারপরে এটি বীজ হিসাবে ব্যবহার করুন "আপনার জন্য পছন্দসই এই চা পাতার প্যাটার্ন!" জিনিস।
আমি যা বলতে চাইছি তার জন্য এখানে কিছু সিউডোকোড, যদি সে সাহায্য করে ...
var sprites = [...]; // Array of tea leaf sprites
var n_leaves = rand(5)+5; // Random number of leaves from 5-9
for (i=0; i<n_leaves; i++) {
var sprite_index = rand(sprites.length); // Random sprite index
var r = rand(CUP_DIAMETER); // Random radius for point on disk calc
var theta = rand(2*PI); // Random theta (rotation) for point on disk
var sprite_x = sqrt(r) * cos(theta); // Sprite X
var sprite_y = sqrt(r) * sin(theta); // Sprite Y
var sprite_rotation = rand(2*PI); // Sprite rotation
var sprite_scale = rand(1) + 0.5; // Sprite scale from 0.5 to 1.5
var sprite_h_mirror = (rand(1) < 0.5 ? true : false); // If true, mirror horizontally
var sprite_v_mirror = (rand(1) < 0.5 ? true : false); // If true, mirror vertically
draw_sprite(sprite_index, sprite_x, sprite_y, sprite_rotation, sprite_h_mirror, sprite_v_mirror);
}
কোনও ডিস্কে এলোমেলো পয়েন্ট কীভাবে বাছতে হয় এবং কেন আমি পুরো স্কয়ারটি / সিন / কোস জিনিসটি ব্যবহার করছি সে সম্পর্কে দুর্দান্ত আলোচনার জন্য http://mathworld.wolfram.com/DiskPointPicking.html দেখুন ।