📘 CodingMarble Learn

क्रिएटिव कोडिंग: प्रोग्राम से कला बनाना

क्रिएटिव कोडिंग का मतलब है प्रोग्राम लिखकर चित्र, एनिमेशन, ध्वनि या इंटरैक्टिव कला बनाना। आप कैनवस पर x और y निर्देशांक से बनाते हो, जहाँ (0, 0) ऊपर-बाएँ कोना है और y नीचे की ओर बढ़ता है। रंग तीन संख्याएँ हैं (लाल, हरा, नीला)। लूप आकृतियों को दोहराकर पैटर्न बनाते हैं, रैंडम संख्याएँ हर बार नया चित्र देती हैं (जनरेटिव आर्ट), रिकर्शन फ्रैक्टल बनाता है, और माउस क्लिक या सेंसर जैसे इवेंट दर्शक को कला बदलने देते हैं। p5.js, Processing, Scratch और Python turtle इसके लिए बने हैं।

🎬 कदम-दर-कदम कहानी

  1. कैनवस ग्राफ़ पेपर जैसा है, पर उल्टा। (0, 0) ऊपर-बाएँ कोना है। x दाएँ बढ़ता है और y नीचे। देखो, बिंदु (100, 50) तक जाता है।
  2. आकृति को स्थिति, आकार और रंग चाहिए। रंग 0 से 255 तक की तीन संख्याएँ हैं: लाल, हरा, नीला। (255, 120, 0) से नारंगी बनता है।
  3. लूप एक निर्देश को दोहराता है। एक लूप एक पंक्ति बनाता है। लूप के अंदर लूप पूरी जाली बनाता है। n बदलो: कोड की एक पंक्ति, ढेर सारे वर्ग।
  4. अब आकार, जगह और रंग के लिए रैंडम संख्याएँ जोड़ो। हर बार नया चित्र बनता है। सरल नियम + संयोग को जनरेटिव आर्ट कहते हैं।
  5. रिकर्शन: एक फ़ंक्शन जो अपनी ही छोटी कॉपी को बुलाता है। हर शाखा से दो छोटी शाखाएँ। गहराई 6 पर 63 शाखाएँ: फ्रैक्टल पेड़।
  6. अब आपकी बारी। हर स्लाइडर एक इवेंट है: खिसकाते ही प्रोग्राम फिर से बनाता है। पासा दबाओ, नया रैंडम और नया मोड।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

गणित की तुलना में y उल्टा क्यों?

स्क्रीन ऊपर की पंक्ति से नीचे की ओर बनती है, इसलिए प्रोग्राम पंक्तियाँ ऊपर से गिनते हैं। चरण 1 देखो।

तीन संख्याओं से हर रंग कैसे?

स्क्रीन लाल, हरा, नीला प्रकाश मिलाती है। तीनों की अलग ताक़त से लाखों रंग।

100 बार circle() लिखने के बजाय लूप क्यों?

लूप छोटा, ग़लती कम, और एक संख्या बदलकर 10 या 1000 आकृतियाँ।

कंप्यूटर रैंडम चुनता है, तो कला मेरी कैसे?

नियम, रैंडम की सीमा और रंग आप तय करते हो। कंप्यूटर सिर्फ़ आपके डिज़ाइन को खोजता है।

रिकर्सिव पेड़ हमेशा क्यों नहीं बढ़ता?

हर बुलावे पर गहराई 1 घटती है। 0 पर (बेस केस) फ़ंक्शन रुक जाता है।

स्केच को कैसे पता चलता है कि मैंने स्लाइडर हिलाया?

स्लाइडर एक input इवेंट भेजता है, उससे जुड़ा फ़ंक्शन चित्र फिर बनाता है।

क्रिएटिव कोडिंग क्या है?

क्रिएटिव कोडिंग प्रोग्रामिंग से कला बनाना है: चित्र, एनिमेशन, ध्वनि, गेम या इंटरैक्टिव इंस्टॉलेशन। लक्ष्य अभिव्यक्ति है, कोई कारोबारी ऐप नहीं।

लोकप्रिय टूल: p5.js (ब्राउज़र में JavaScript), Processing (Java), Python turtle या pygame, और Scratch।

ज़्यादातर स्केच के दो भाग: setup() एक बार चलता है (कैनवस बनाना), draw() बार-बार, लगभग 60 बार प्रति सेकंड, जिससे एनिमेशन बनता है।

जनरेटिव आर्ट: कलाकार नियम लिखता है, कंप्यूटर चित्र बनाता है। एक संख्या बदलो, नई कृति।

कैनवस, निर्देशांक, रंग और आकृतियाँ

कैनवस पिक्सेल की जाली है। createCanvas(400, 300) से 400 चौड़ा, 300 ऊँचा। मूल बिंदु (0, 0) ऊपर-बाएँ; y नीचे बढ़ता है, गणित के ग्राफ़ से उल्टा।

चर (variable) बदलने वाली संख्या रखता है: draw() में x = x + 2 गेंद चलाता है। शर्त if (x > width) x = 0 उसे वापस लाती है।

लूप, रैंडम और पैटर्न

for लूप गिनती के साथ दोहराता है: for (i = 0; i < 10; i++) circle(i*40, 100, 30) से 10 वृत्तों की पंक्ति। लूप के अंदर लूप (नेस्टेड) से n × n जाली।

random(a, b) a और b के बीच कोई संख्या देता है; जगह, आकार या रंग के लिए। सीड रैंडम क्रम को तय करता है ताकि वही चित्र दोबारा बने।

नॉइज़ (Perlin noise) चिकना रैंडम है, बादल, पहाड़ और प्राकृतिक हलचल के लिए।

पैटर्न छोटे बदलाव के साथ दोहराने से बनते हैं: हर बार थोड़ा घुमाओ, i से रंग बदलो।

फ़ंक्शन, रिकर्शन और फ्रैक्टल

फ़ंक्शन निर्देशों को एक नाम और पैरामीटर के साथ बाँधता है: flower(x, y, size) कई बार बनाओ।

पुनरावृत्ति (iteration) लूप से दोहराती है। रिकर्शन में फ़ंक्शन छोटे सवाल पर ख़ुद को बुलाता है। रुकने के लिए बेस केस ज़रूरी, नहीं तो अंत नहीं।

function branch(len, depth) {
  line(0, 0, 0, -len); translate(0, -len)
  if (depth > 0) {
    rotate(a);  branch(len*0.7, depth-1)
    rotate(-2a); branch(len*0.7, depth-1)
  }
}

फ्रैक्टल हर पैमाने पर एक जैसा दिखता है: पेड़, फ़र्न, कोख स्नोफ्लेक, सियरपिंस्की त्रिभुज। गहराई d वाले द्विशाखी पेड़ में 2d − 1 शाखाएँ।

इवेंट, ऑब्जेक्ट, डेटा और इंस्टॉलेशन

इवेंट

इवेंट यानी कुछ घटना: mousePressed(), keyPressed(), स्लाइडर हिलना, आवाज़ तेज़ होना। प्रोग्राम एक फ़ंक्शन से जवाब देता है। इससे कला इंटरैक्टिव बनती है।

ऐरे और ऑब्जेक्ट

ऐरे कई मान रखता है: 100 बूँदों की 100 x-स्थितियाँ। क्लास एक नक्शा है (Drop: x, y, speed और fall() मेथड); हर बूँद एक ऑब्जेक्ट।

इमेज और वीडियो डेटा के रूप में

इमेज पिक्सेल का ऐरे है, हर पिक्सेल में RGB। हर पिक्सेल बदलकर फ़िल्टर: ग्रे = (r + g + b) / 3; उल्टा = 255 − मान। वेबकैम वीडियो हर सेकंड लगभग 30 नई इमेज है।

डेटा विज़ुअलाइज़ेशन

संख्याओं को आकृतियों में बदलो: महीने की बारिश को खंभों की ऊँचाई में।

सेंसर, API, GUI और इंस्टॉलेशन

माइक्रोकंट्रोलर (Arduino, micro:bit) प्रकाश या दूरी की रीडिंग स्केच को भेज सकता है। API इंटरनेट से ताज़ा डेटा, जैसे मौसम, लाता है। GUI स्लाइडर और बटन देता है। प्रोजेक्टर के साथ कमरे में लगाओ तो इंटरैक्टिव इंस्टॉलेशन।

करके देखो

p5.js वेब एडिटर खोलो और 10 × 10 वृत्तों की जाली बनाओ जिसका रंग mouseX पर निर्भर हो।

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

1. 400 × 300 कैनवस पर बिंदु (400, 300) कहाँ है?

नीचे-दाएँ कोने में, क्योंकि x दाएँ और y नीचे बढ़ता है।

2. शुद्ध पीले रंग का RGB लिखो।

पीला = लाल + हरा प्रकाश: fill(255, 255, 0)।

3. यह कितने वृत्त बनाएगा? for (i = 0; i < 8; i++) for (j = 0; j < 5; j++) circle(i*50, j*50, 40)

बाहरी लूप 8 बार, अंदर वाला हर बार 5: 8 × 5 = 40 वृत्त।

4. रिकर्सिव पेड़ एक तने से शुरू, हर शाखा दो में बँटती, गहराई 5 तक। कुल शाखाएँ?

1 + 2 + 4 + 8 + 16 = 31 = 2⁵ − 1।

5. पिक्सेल (200, 100, 30) है। ग्रे मान और उल्टा रंग निकालो।

ग्रे = (200 + 100 + 30) / 3 = 110। उल्टा = (55, 155, 225)।

6. ऑब्जेक्ट से बारिश वाला स्केच कैसे बनाओगे?

class Drop { x, y, speed; fall() { y += speed; अगर y > height तो y = 0 } show() { line(x, y, x, y+10) } }। 200 बूँदों का ऐरे; draw() में हर बूँद पर fall() और show()।

आम गलतियाँ

अभ्यास क्विज़

1. p5.js या Processing कैनवस पर (0, 0) कहाँ है?
2. fill(0, 0, 255) देता है:
3. किससे हर बार स्केच अलग दिखता है?
4. रिकर्शन का मतलब:
5. mousePressed() किसका उदाहरण है?

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

क्रिएटिव कोडिंग क्या है?

प्रोग्रामिंग से कला, एनिमेशन, ध्वनि या इंटरैक्टिव अनुभव बनाना, p5.js, Processing या Scratch जैसे टूल से।

शुरुआत के लिए कौन-सी भाषा अच्छी है?

p5.js (JavaScript) ब्राउज़र में बिना कुछ इंस्टॉल किए चलता है। Processing और Python turtle भी अच्छे हैं।

जनरेटिव आर्ट क्या है?

नियमों से बनी कला जिसे कंप्यूटर अक्सर रैंडम के साथ चलाता है, तो हर बार नया चित्र बनता है।

यह कहाँ पढ़ाया जाता है

यूक्रेन10 класElective: creative programming (35 h)
यूक्रेन11 класElective: creative programming (35 h)
फ्रांसPremièreDigital tools and languages

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी कंप्यूटर विज्ञान पाठ