গুরুত্বপূর্ণ দ্রষ্টব্য: এই উত্তরটি আসল প্রশ্নের উত্তর দেয় না , তবে এটি অনুরোধ অনুযায়ী মুছে ফেলা হয়েছিল। বিব্রতকরভাবে আমি হেক্সাহেড্রাল এবং ষড়ভুজকে বিভ্রান্ত করেছি। প্রশ্নটি 3 ডি-তে স্বেচ্ছাসেবক কোষগুলিতে বিন্দু বাছাইয়ের বিষয়ে রয়েছে যখন এই দ্রবণটি 2 ডি-তে নিয়মিত ষড়্ভুজাকৃতি কোষগুলিতে বিন্যাস করে বা অনিয়মিত যেগুলি কোনও মাত্রায় কিছুটা ভোরোনাই প্রসারণের সাথে মিলে যায়। এই পদ্ধতিটি কেবল তখনই প্রযোজ্য যদি জাল প্রথম স্থানে ভোরোনাই প্রসারণ হিসাবে উত্পন্ন হয়েছিল (যা মাঝে মধ্যে ব্যবহৃত পদ্ধতি হিসাবে মনে হয় )।
আপনি এখানে সাজানোর মাধ্যমে কী বোঝাতে চাইছেন তা আমি নিশ্চিত নই, তবে আমি ধরে নিই যে আপনি বিমানটিকে বিন্দুতে ষড়ভুজীয় বিন্যাসে সাজিয়ে রাখতে চান।
ম্যাথামেটিকা আমি জানি, তাই আমি আপনাকে ম্যাথামেটিকায় এটি কীভাবে করব তা দেখাতে চলেছি, তবে পদ্ধতিটি অন্য সিস্টেমে পোর্ট করা যায়। ধারণাটি হ'ল একটি ষড়্ভুজীয় জালটি ত্রিভুজাকার দ্বৈত: এটি ত্রিভুজাকার বিন্যাসে পয়েন্টের ভোরোনাই চিত্র হিসাবে তৈরি করা যেতে পারে। মেঘের একটি বিন্দু প্রদত্ত ষড়্ভক্ষুর অন্তর্ভুক্ত যদি এটি অন্য ষড়্ভুজের কেন্দ্রের চেয়ে সেই ষড়্ভুজের কেন্দ্রের কাছাকাছি থাকে।
এই পদ্ধতিটি বিভিন্ন আকারের মেসের জন্যও কাজ করবে, যতক্ষণ না সেগুলি বিন্দু বিন্যাসের ভোরোনাই চিত্র হিসাবে তৈরি করা যায়। (যেমন হেক্সাগনগুলির নিয়মিত হওয়ার দরকার নেই))
জাল জেনারেট করা যাক। এটি একটি ত্রিভুজ জালিয়াতি:
pts = Join @@ Table[{x, Sqrt[3] y}, {x, 0, 4}, {y, 0, 2}];
points = Join[pts, TranslationTransform[{1/2, Sqrt[3]/2}] /@ pts];
Needs["ComputationalGeometry`"]
PlanarGraphPlot[points, LabelPoints -> False]
এর দ্বৈত হিক্সাগোনাল যা আমরা আগ্রহী:
DiagramPlot[points, LabelPoints -> False]
এটি কোনও ফাংশন তৈরি করে nf
যা ষড়ভুজ কেন্দ্রের সূচকটি খুঁজে পায় যা কিছু ক্লাউড পয়েন্ট সবচেয়ে নিকটে থাকে। এটি পদ্ধতির মূল চাবিকাঠি:
nf = Nearest[N[points] -> Range@Length[points]];
এখন 1000 টি এলোমেলো পয়েন্টের একটি মেঘ জেনারেট করে এগুলি এর সাথে বাছাই করুন nf
:
cloud = RandomReal[{-1/2, 5}, {1000, 2}];
indices = First /@ nf /@ cloud;
indices
প্রতিটি ক্লাউড পয়েন্ট সবচেয়ে কাছাকাছি যে কেন্দ্রগুলির সূচকগুলি অন্তর্ভুক্ত করে। এটি আমাদের প্রয়োজনীয় তথ্য। এখন সেগুলি থেকে আমরা একটি হিস্টোগ্রাম তৈরি করতে পারি ...
Histogram[indices]
... বা তাদের প্রতিটি রঙ ...
Show[
DiagramPlot[points, LabelPoints -> False],
Graphics@MapThread[{ColorData[3][#1], Point[#2]} &, {indices, cloud}],
PlotRange -> All, AspectRatio -> Automatic
]
... বা আমরা চাই কোনও ধরণের অভিনব দৃশ্যায়ন করুন।
tally = Tally[indices];
ListDensityPlot[Join[points, List /@ Sort[tally][[All, 2]], 2],
InterpolationOrder -> 0,
Epilog -> (Text[#2, points[[#1]]] & @@@ tally),
PlotRange -> {{-.5, 5}, {-.5, 5}}, Mesh -> All,
ColorFunction -> (ColorData["BeachColors"][1 - #] &)]
এখানে মূল পয়েন্টটি হ'ল ফাংশন যা কোনও কিছুর সবচেয়ে নিকটতম বিন্দু খুঁজে পায় ( Nearest
)। ম্যাথমেটিকায় এটি অন্তর্নির্মিত রয়েছে, তবে এমন একটি সুযোগ আছে যা আপনার সিস্টেমের মধ্যে নেই। যদি এটি হয় তবে দয়া করে এই জাতীয় ফাংশন কীভাবে কার্যকরভাবে প্রয়োগ করতে হবে (বা যদি প্রক্রিয়া করার জন্য আপনার কাছে বিশাল পরিমাণের পয়েন্ট না থাকে তবে নিখুঁত লিনিয়ার সময় বাস্তবায়নের সাথে যান) দয়া করে এই প্রশ্নটি দেখুন ।