নির্দিষ্ট পয়েন্টগুলির সেট (3 ডি অ্যারে) দেওয়া হলে, কেউ কীভাবে চিত্রের মতো চিত্রটি তৈরি করতে সক্ষম একটি অ্যালগরিদম তৈরি করতে সক্ষম তা জানেন?
নির্দিষ্ট পয়েন্টগুলির সেট (3 ডি অ্যারে) দেওয়া হলে, কেউ কীভাবে চিত্রের মতো চিত্রটি তৈরি করতে সক্ষম একটি অ্যালগরিদম তৈরি করতে সক্ষম তা জানেন?
উত্তর:
যুদ্ধের পরে এখানে আসছেন, তবে যেহেতু এখনও কোনও গ্রহণযোগ্য উত্তর নেই এবং @ লুক তার প্রাপ্য প্রতিনিধিটি পেতে অস্বীকার করেছেন, তার দেওয়া লিঙ্কটির একটি দ্রুত সংক্ষিপ্তসার এখানে দেওয়া হল।
সুতরাং সম্পূর্ণ অ্যালগরিদম এখানে উপলব্ধ:
http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html
ধারণাটি হ'ল আপনার জালটিকে একটি সাধারণ পদ্ধতি দিয়ে বুটস্ট্র্যাপ করুন যা আপনাকে 20 টি মুখ দিয়ে একটি গোলক দেয় এবং তারপরে আপনি সন্তুষ্ট না হওয়া পর্যন্ত এটি পরিমার্জন করবেন।
আপনি একটি আইকোশেড্রন দিয়ে শুরু করুন । উইকিপিডিয়া নিবন্ধ যেমনটি বলেছে, আপনি তিনটি অভিন্ন এবং অর্থোথোনাল আয়তক্ষেত্র অঙ্কন করে শীর্ষটি অর্জন করতে পারেন। আপনার 4 টি কোণার সাথে 3 টি আয়তক্ষেত্র রয়েছে -> 12 টির শীর্ষে।
উইকিপিডিয়া চিত্র:
উদাহরণস্বরূপ, জেড প্ল্যান পয়েন্টগুলি হ'ল (ক, খ আয়তক্ষেত্র দৈর্ঘ্য):
এখন আপনাকে 20 টি মুখ খুঁজে পেতে হবে। এটি পাঠকের অনুশীলন হিসাবে ছেড়ে গেছে: পি
এখন আপনার একটি মৌলিক ক্ষেত্র রয়েছে, আপনি বহুভুজ যুক্ত করতে পারেন। আপনি এই সাধারণ অ্যালগরিদম দিয়ে এটি:
for each iteration:
# each iteration multiplies by 4 the number of faces
for each edge at the current iteration:
split the edge in two
replace the middle point on the sphere
মধ্য বিন্দুটি সন্ধানের জন্য, আমরা ধরে নিই যে আমরা ইউনিট গোলকটি তৈরি করতে চাই (কেন্দ্র (0, 0, 0), ব্যাসার্ধ 1)।
middlePoint(p1, p2):
middle = Point((p1.X + p2.X / 2), # same for y, z)
radius = sqrt(middle.X^2, middle.Y^2, middle.Z^2)
return Point(middle.X / radius, # same for y, z)
প্রতিটি পুনরাবৃত্তিতে আমাদের মুখগুলি পুনর্গঠন করতে হতে পারে তবে এটি মোটামুটি সহজ। প্রতিটি মুখকে চার ভাগে ভাগ করা হয়েছে: