प्रसंस्करण में गोल्फ के लिए युक्तियाँ


13

किसी को भी प्रसंस्करण में गोल्फ के लिए किसी भी सुझाव है ? यह जावा का एक चित्रमय विस्तार है, और गोल्फ के लिए कुछ हद तक मुश्किल है।


अच्छा प्रश्न। मेरा मानना ​​है कि टिप्स सामुदायिक विकी पर होने चाहिए। मैंने इसे प्रवास के लिए हरी झंडी दिखाई।
लेवल रिवर सेंट

4
Downvote ??? क्यों?
TARDIS

डाउनवोट के बारे में चिंता न करें ... इस पोस्ट से समुदाय विकी के रूप में चिह्नित होने के बाद आपको इस पोस्ट से प्राप्त सभी प्रतिनिधि खो देंगे ...
user12205

3
@ace: किसी पद के चिह्नित होने से पहले प्राप्त प्रतिष्ठा सीडब्ल्यू रखी जाएगी: meta.stackexchange.com/a/11741/229438
ProgramFOX

जवाबों:


7
  • यदि कोई एनीमेशन की आवश्यकता नहीं है, तो आप void draw()सब कुछ छोड़ सकते हैं और डाल सकते हैं void setup()
  • कैनवास के आकार को शुरू करना कभी-कभी आवश्यक नहीं होता है - इसे (100, 100)डिफ़ॉल्ट रूप से आरंभ किया जाएगा ।
  • आप उपयोग करने की आवश्यकता है heightऔर widthअपने कोड में, यह आमतौर पर के बजाय उनके संख्यात्मक मान का उपयोग करने के कम है। उदाहरण के लिए, आकार के एक कैनवास के साथ (100, 100), 99प्रतिस्थापित करने के लिए heightऔर width7 बाइट्स बचा सकता है।

3

यदि आप सेटअप विधि में केवल कोड चलाते हैं तो आपको विधि की रूपरेखा लिखने की आवश्यकता नहीं है। उदाहरण के लिए आप लिख सकते हैं:

rect(10,10,90,90);

के बजाय

void setup {
    rect(10,10,90,90);
}

और जब तक आप किसी अन्य तरीके का उपयोग नहीं करेंगे तब तक सब कुछ चलाने से पहले सेटअप विधि में डाल दिया जाएगा


यह थोड़ा छोटा हो सकता है। मैंने देखा है कि अगर आप स्थिर मोड में एक समारोह परिभाषित करने की कोशिश, प्रसंस्करण थोड़ा उलझन में प्राप्त कर सकते हैं: puu.sh/tpzP8.png
Quat

@ जब तक आप किसी अन्य तरीके को परिभाषित नहीं करते हैं तब तक सब कुछ सेटअप विधि में रखा जाएगा। यदि आपको विधियों को परिभाषित करने की आवश्यकता है तो आपको सेटअप विधि को स्पष्ट रूप से नाम देना होगा।
HEGX64

2

रंग (R, G, B)संकेतन

हेक्साडेसिमल रंग

रंग प्रारूप में प्रसंस्करण बहुत लचीला है।

fill(255,255,0); //16 bytes

हेक्साडेसिमल नोटेशन का उपयोग करके लिखा जा सकता है

fill(#ffff00);   //14 bytes (2 bytes saved)

ग्रेस्केल

यहां रंगों के लिए एक विशेष उपयोग किया जाता है यदि सभी लाल, हरे और नीले रंग के मान समान हैं (सफेद):

fill(255,255,255); //18 bytes
fill(#ffffff);     //14 bytes
fill(255);         //10 bytes

सभी तीन मापदंडों को ग्रेस्केल मान वाले एक पैरामीटर में छोटा किया जा सकता है: 0काले से 255सफेद तक।

इसे अल्फा के लिए भी बढ़ाया जा सकता है:

fill(175,175,175,50); //translucent gray
fill(175,50);         //8 bytes shorter

दोनों का अर्थ समान रंग है, लेकिन बाद वाला तरीका 8 बाइट्स से छोटा है।

अल्फा

हालांकि स्पष्ट है, यह कहा जाना चाहिए कि रंगों को निर्दिष्ट करने में अल्फा पैरामीटर वैकल्पिक है क्योंकि रंग अल्फा के मान 255(100% अपारदर्शी) पर डिफ़ॉल्ट होते हैं ।

सारांश: रंग प्रारूप

अपने रंग को व्यक्त करने के लिए सबसे छोटे रंग प्रारूप का उपयोग करें (अनावश्यक बिट्स को छोड़ना याद रखें- कार्यक्रम के संदर्भ में-उदाहरण के लिए: अल्फा या ग्रेस्केल)

R: लाल G: हरा B: नीला A: अल्फा g: ग्रेस्केल

RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA

2

संक्षिप्‍त स्थिरांक

यदि आप कभी भी प्रसंस्करण (जैसे DIFFERENCEया TRIANGLE_FAN) में ऑल-कैप्स कीवर्ड में से एक का उपयोग कर रहे हैं , तो देखें कि क्या वे जिस नंबर से मेल खाते हैं वह कम है।

उदाहरण के लिए, DIFFERENCEबस int32 के बराबर है। DIFFERENCE यहाँ का उपयोग करने के बजाय , मैं लिख सकता हूँ 32, 8 वर्णों की बचत।


2

के लिए वैकल्पिक विकल्प void keyPressed(){}

void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;}           //26 bytes

void draw(){}के लिए आदेश में डिफ़ॉल्ट रूप से की जरूरत है keyअद्यतन करने की। यदि उपयोगकर्ता ने कार्यक्रम की शुरुआत से एक कुंजी दबाया नहीं है, तो keyइसका मान दिया जाता है 0। यह जाँचने से कि क्या यह अधिक है 0(यानी उपयोगकर्ता ने एक कुंजी दबाया है), हमारे पास गोल्फ कोड है और 10 बाइट बचा सकते हैं।


2

सफेद #FFFFFF

संबंधित: रंग संकेतन

सफेद के लिए इसका उपयोग करने के बजाय:

color(255)     //10 bytes

तुम यह केर सकते हो:

color(-1)      //9 bytes

और 1 बाइट बचाएं।


1

सेट का उपयोग करके पिक्सेल को सेट करना और कमिट करना ()

यह पिक्सेल के माध्यम से पिक्सेल सेट करने के लिए अधिक कुशल है [] :

pixels[0] = color(255)
updatePixels();

हालाँकि, कि updatePixels()एक सूचकांक का उपयोग करने की आवश्यकता है और परिदृश्य के आधार पर एक पिक्सेल सूचकांक के लिए एक एक्स, वाई स्थिति परिवर्तित करने की आवश्यकता होगी। चीजों को कम रखने के लिए, भले ही यह सीपीयू कुशल हो (जैसा कि प्रत्येक कॉल पूरे बफर को अपडेट करता है), सेट () एक पिक्सेल को एक कॉल में सीधे बफर को सेट करने और प्रतिबद्ध करने की अनुमति देता है।

set(0,0,color(255));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.