मैं this solution ओवरलैप के बिना एक "संगत" आकार के भीतर क्लस्टरिंग तत्वों की देखभाल करने के लिए प्रकट होता है जो, लेकिन क्या आकार निम्नलिखित की तरह, अधिक अस्पष्ट था अगर देखा है:क्लस्टरिंग तत्वों
इस पर मेरा पहला जोड़ा स्टैब्स आकार को सबसे बुनियादी रूप में सरल बनाने के लिए इंगित करता है, फिर तत्व वास्तविक आकार निर्देशांक के भीतर होता है, लेकिन यह संभावित गणनाओं की एक बहुत सी चीज की तरह लगता है जिसे मैं सरल बनाना चाहता था। किसी भी विचार की सराहना की जाएगी। धन्यवाद!
जे एस फिडल संदर्भ के लिए:
var tilesize = 18, tilecount = 15;
var gRows = Math.floor($(".container").innerWidth()/tilesize);
var gCols = Math.floor($('.container').innerHeight()/tilesize);
var vals = _.shuffle(_.range(tilecount));
var xpos = _.shuffle(_.range(gRows));
var ypos = _.shuffle(_.range(gCols));
_.each(vals, function(d,i){
var $newdiv = $('<div/>').addClass("tile");
$newdiv.css({
'position':'absolute',
'left':(xpos[i] * tilesize)+'px',
'top':(ypos[i] * tilesize)+'px'
}).appendTo('.container').html(d);
});
संपादित
This example एक परिभाषित आकार के भीतर यादृच्छिक क्लस्टरिंग है, लेकिन है कि आकार के संदर्भ के बाद से एक वर्ग नहीं है, मैं की आवश्यकता होगी पहले एक एसवीजी ऑब्जेक्ट को कैनवास तत्व में कनवर्ट करने और फिर कुछ इसी तरह के कोड को चलाने पर कुछ परीक्षण करने के लिए।
शायद दो सरणी (* प्रत्येक अक्ष * के लिए एक) के बजाय आप समन्वय जोड़ों के साथ एक कर सकते हैं जिसे आप पहले फिट करने वाले लोगों के लिए फ़िल्टर कर सकते हैं ई आकार, और उन लोगों से आप यादृच्छिक रूप से चुन सकते हैं कि आप क्या चाहते हैं। यह एक रैखिक दृष्टिकोण होगा जिसे कुछ अंदर आने तक पुनः चयन करने की आवश्यकता नहीं है। –
उत्तर के लिए धन्यवाद - किसी भी मौके पर आपने जंगली में देखा है? संभावित तरीकों के लिए कुछ प्रेरणा इकट्ठा करने की कोशिश कर यह हासिल किया जा सकता है। – Zach
यह वास्तव में एक अच्छा सवाल है। आकार के चारों ओर मुक्केबाजी एक विकल्प है? –