मेरे पास एक मूल डेल्फी टीएफआरएम है जो रॉय टैनक के कमुलस टैग क्लाउड व्यूअर, वर्डप्रेस फ्लैश प्लग-इन का अनुकरण करता है। वह प्लग-इन क्या करता है जो शब्दों का 3 डी क्षेत्र बनाता है जो "आभासी" क्षेत्र की सतह पर घूमता है। आप यहाँ कार्रवाई में इसे देख सकते हैं:डेल्फी 6: मूल डेल्फी फ़्लैश की तरह चिकनी ग्राफिक्स कर सकते हैं?
http://www.roytanck.com/2008/03/06/wordpress-plugin-wp-cumulus-flash-based-tag-cloud/
अपने आवेदन संरचना में प्रत्येक शब्द का अपना TBitmap है और क्षेत्र मैं एक अस्थायी TBitmap करने के लिए सभी शब्दों की बिटमैप्स और फिर BitBlt() कि अस्थायी TBitmap प्रिंट प्रस्तुत करना एक दृश्यमान TPaintBox के कैनवास पर। रेंडर ऑपरेशन एक टीटीमर टाइमर इवेंट पर होता है जो हर 50 मिलीसेकंड होता है।
हालांकि, कोई फर्क नहीं पड़ता कि मैं कितनी मेहनत करता हूं, शब्दों के आंदोलन के लिए एक उल्लेखनीय "जिटर" है, खासकर फ़्लैश प्लेयर के रेशमी चिकनी आंदोलन की तुलना में। मैंने सोचा था कि फ्रेम दर में वृद्धि करने में मदद मिल सकती है और मैंने मल्टीमीडिया टाइमर का उपयोग करने का भी प्रयास किया जिसने एमएम टाइमर की बहुप्रचारित प्रकृति के कारण उचित लॉकिंग और सभी कैनवासों को अनलॉक करने के साथ हर 10 मिलीसेकंड अपडेट किया। अभी भी झटकेदार एकमात्र चीज जो मैं समझ सकता हूं वह यह है कि मेरे द्वारा किए जाने वाले गणनाओं में प्रत्येक शब्द के लिए अलग-अलग पिक्सेल स्थान होते हैं और यह जिटर का कारण बनता है। इसके विपरीत, और यह अनुमान है, शायद फ्लैश संभावित रूप से "पिक्सेल के बीच" प्रतिपादन की सुविधा प्रदान करने के लिए या वास्तविक समय में एंटी-एलियासिंग करने की सुविधा प्रदान करता है और यही कारण है कि यह जिटर नहीं है?
किसी भी मामले में, क्या रेशमी चिकनी गति प्राप्त करना संभव है, मैं देशी डेल्फी कोड का उपयोग करने के लिए देख रहा हूं? या ऐसा करने का एकमात्र तरीका डायरेक्ट 3 डी या ओपनजीएल समाधान जैसी किसी चीज पर जाना है? अगर मैं हारने वाली लड़ाई कर रहा हूं तो मैं इस बात को मौत के लिए समय बर्बाद नहीं करना चाहता हूं। दूसरी तरफ, यदि आपके पास कोई सुझाव है तो मुझे उन्हें सुनना अच्छा लगेगा। मेरा अनुमान है कि अगर मुझे डायरेक्ट 3 डी/ओपनजीएल रूट जाना है तो यह एक बड़ी नौकरी और सीखने की वक्र है, इसलिए यदि मुझे मूल डेल्फी कोड में ऐसा करने का कोई तरीका मिल सकता है तो मुझे वह पसंद आएगा।
अनुवर्ती संपादित करें: एक बहुत बड़ा "आभासी" बिटमैप पर प्रिंट होगा और फिर उस यहाँ दी गई मदद की तरह एक resampling पद्धति का उपयोग करके "नीचे" वास्तविक दिखाई कैनवास ?:
Scale an image nicely in Delphi?
क्या आपके पास DoubleBuffering, AllPaintingInWmPaint, SupportsTransparentBackColor, और UserPaint पर है? एक फॉर्म पर जीडीआई प्रतिपादन करते समय इनका उपयोग करना झिलमिलाहट को रोक देगा। – Nowayz
Nowayz। मुझे झटका नहीं है। जिटर स्थितित्मक है, पश्चाताप के कारण नहीं। –
उत्तर निश्चित रूप से हां है। लेकिन अगर आप वास्तव में चिकनी 3 डी ग्राफिक्स चाहते हैं, तो सीपीयू पर्याप्त तेज़ नहीं है। OpenGL का उपयोग करके आपको GPU का उपयोग करने की आवश्यकता है। –