मैं एक शेडर लिख रहा हूं जो कभी-कभी 2 डी मानचित्र पर एक बिंदु चमक बनाता है। ("चमक" बस एक उज्ज्वल रंगीन पिक्सेल है।) मैं चमकदार ब्लॉक को अनंत (अनंत) विमान पर यादृच्छिक रूप से और समान रूप से वितरित करना चाहता हूं, लेकिन मैं चाहता हूं कि स्पार्कलिंग एक्स और वाई निर्देशांक के आधार पर निर्धारक हो। मैंने निर्देशांक से बीज बनाने और उस बीज से जावा Random
बनाने की कोशिश की, लेकिन मेरे प्रयासों ने अब तक पहचानने योग्य पैटर्न में परिणाम प्राप्त किए हैं। इस समारोह को अक्सर (कई लाख बार) कहा जाएगा ताकि प्रदर्शन महत्वपूर्ण हो।मैं एक्स/वाई निर्देशांक से निर्धारित छद्म यादृच्छिक पैटर्न कैसे निर्धारित कर सकता हूं?
मैंने पहली बार अपने hashCode()
कार्यान्वयन की नकल करने की कोशिश की, जो टकराव से बचने के लिए प्राइम नंबर गुणक का उपयोग करता है। इसके परिणामस्वरूप मानचित्र पर एक दृश्यमान गैश लगाया गया जहां अंक की एक श्रृंखला ने एक ही बीज साझा किया।
मैं तो इतना तरह निर्देशांक श्रृंखलाबद्ध द्वारा एक बीज बनाने की कोशिश की:
long seed = ((long) x << 32) | (long) y;
Random rand = new Random(seed);
यह पैटर्न वाली डेटा में परिणाम के साथ ही, हालांकि पैटर्न के रूप में स्पष्ट नहीं है लगता है। चयनित निर्देशांक लाइनों में दिखाई देते हैं, समान रूप से वितरित नहीं होते हैं।
मैंने एमडी 5 या अन्य क्रिप्टोग्राफिक हैशिंग एल्गोरिदम का उपयोग करने से बचा है क्योंकि मुझे प्रदर्शन प्रभाव से डर है।
यदि आप एलसीएम से कई लाख छद्म यादृच्छिक संख्याएं उत्पन्न कर रहे हैं और एक 2-डी वर्ग में साजिश कर रहे हैं तो आप पहचानने योग्य 'पैटर्न' देख सकते हैं, जब तक कि आप क्रिप्टो मजबूत जनरेटर का उपयोग न करें। के-विमानों के लिए खोजें। आप probbaly एक nonlinear congruential छद्म यादृच्छिक संख्या जनरेटर का उपयोग करना चाहते हैं। –