Processing : برخورد هنر و الگوریتم

۱۰ شهریور ۱۳۹۱

substrate

substrate

 

تصویری که در بالا می بینید برداشتی آزاد ، از یک نقاشی قدیمی از جکسون پولاک با نام “لایه ها” است . این تصویر تماما به وسیله روابط ریاضی ، الگوریتم ها و کد نویسی شکل گرفته است .از زبان برنامه نویسی Processing برای خلق این اثر استفاده شده است .

پیش از این در پیکسلر در مورد “هنر مولد” یا “Generative Art” صحبت کرده بودم :

هنر مولد هنری است که در آن اثر هنری ، طبق الگوریتمی از پیش تعریف شده تولید می شود . این الگوریتم می تواند توسط نرم افزار و یا سیستم های شبیه سازی ریاضی تعریف شود . هنر مولد در همه زمینه های هنری مثل هنرهای تجسمی ، موسیقی ، مجسمه سازی و… کاربرد دارد .

اگر شما به عنوان یک هنرمند به این شکل از هنر علاقه دارید ولی در مورد یادگیری زبان های برنامه نویسی پیچیده مطمئن نیستید ، Processing یک پیشنهاد خوب ، ساده و دلچسب است.

اگر هم یک برنامه نویس هستید ، باز هم Processing را در اموری مثل پردازش تصویر ، صدا و پردازش داده ها ، موثر و ثمر بخش خواهید یافت .

Processing یک زبان برنامه نویسی آزاد و سرگرم کننده برای نوشتن انواع برنامه های گرافیکی و تعاملی است .

با Processing شما یک کاغذ سفید در اختیار دارید که می توانید به ساده ترین شکل ممکن ایده های گرافیکی و هنری خود را به وسیله کُد نویسی بر روی آن پیاده کنید .

 

نمونه از کار با Processing

نمونه از کار با Processing

امروزه هزاران هنرمند ، برنامه نویس ، دانشجو ، محقق و ریاضی دان از زبان Processing برای نوشتن برنامه های گرافیکی ، پردازش تصویر ، پردازش صدا ، بازی ها ، برنامه های تعاملی ، پردازش داده ها ، شبیه سازی و … استفاده می کنند .

قابلیت های Processing به طور خلاثه به شرح زیر است :

  • رایگان و Open Source است .
  • می تواند برنامه های ۲ بعدی و ۳ بعدی تعاملی را با آن نوشت .
  • از OpenGl برای برنامه سازی ۳ بعدی پشتیبانی می کند .
  • از ویندوز ، مک و لینوکس پشتیبانی می کند .
  • می توانید برنامه های Online و یا Desktop با آن بنویسید .
  • از صدها Library در زمینه های Graphic , 3D , Video , Sound و… پشتیبانی می کند .

در عمل :

Processing را از وب سایت رسمی اش از اینجا دانلود کنید . نسخه های مختلف Processing برای سیستم عامل های مختلف در دسترس است .

Processing برای اجرا شدن نیاز به جاوا دارد . نسخه کامل Processing همراه با جاوا ( نسخه ویندوز) چیزی حدود ۸۵ مگابایت حجم دارد . پس از نصب و اجرا کردن برنامه با پنجره ای روبرو می شوید که می توانید مستقیما کد نویسی کرده و با زدن دکمه Play نتیجه کار را ببینید .

توصیه می کنم حتما از منوی فایل ، نمونه کدهای آماده و مثال های برنامه را ببینید تا با قابلیت های Processing بیشتر آشنا شوید .

کد زیر می تواند تصویر بالا را در Processing ایجاد کند :

void setup() {
  size(480, 120);
}

void draw() {
  if (mousePressed) {
    fill(0);
  } else {
    fill(255);
  }
  ellipse(mouseX, mouseY, 80, 80);
}

چگونه Processing را یاد بگیریم ؟

یادگیری این زبان به دلیل اینکه پیچیدگی های کمتری نسبت به سایر زبان ها دارد ، آسان است . برای این کار شما می توانید به انواع کتاب ها ، سایت ها و آموزشی های تصویری که موجود است مراجعه کنید .

می توانید لیست کاملی از کتاب های آموزشی Processing را از اینجا ببینید . همینطور خود سایت Processing آموزشی هایی را برای شروع به کار با این نرم افزار سامان داده است که آنها را می توانید از اینجا ببینید .

اما توصیه من به شما ، دوره آموزشی تصویری و رایگان Fun Programming است . این دوره آموزشی ، جامع ، ساده و روان است . کاربر با آن احساس راحتی می کند و دروس ارائه شده بسیار خوب توضیح و بسط داده می شوند .

در نهایت :

مسیر برنامه نویسی گرافیکی مسیری است سخت و البته لذت بخش . شما برای خلق یک برنامه باید از مفاهیم ریاضیات با خبر باشید . مواردی مثل مثلثات ، هندسه و مفاهیم فیزیک بسیار مورد استفاده است . علاوه بر همه اینها نیاز به قدرت تحلیل و طراحی الگوریتم نیز مورد نیاز است .

Processing تنها یک ابزار است . ابزاری البته کارا . در این میان ، برنامه ای که می نویسید ، قدرت تحلیل و میزان خلاقیت شما ، مهم تر از ابزاری است که به کار می برید .

 

۱۲ دیدگاه برای "Processing : برخورد هنر و الگوریتم"

  • محمد گفته است: شهریور ۱۰, ۱۳۹۱ در ۹:۰۱ ب.ظ

    salam chand vaght pisham rajebe in masale chizayi khoondam rastesh ama nafahmidam ke karbordesh chi mitoone bashe ! mishe begid
    ?

    پاسخ
  • مهدی خدادادی گفته است: شهریور ۱۰, ۱۳۹۱ در ۹:۳۹ ب.ظ

    سلام محمد جان ، نخست آنکه اگر فارسی تایپ کنید نیکو تر است .
    دوم انکه گرافیک کامپوتری شاخه است مربوط به ترسیمات و محاسبات گرافیکی که بسیار طیف وسیعی دارد . بازی های رایانه ای ، هنر دیجیتالی و پردازش داده ها از جمله این شاخه ها هستند . در اینجا زبان برنامه نویسی Processing در واقع ابزاری است که به ما برای نوشتن برنامه های گرافیکی کمک می کند .

    پاسخ
  • وحید گفته است: شهریور ۱۰, ۱۳۹۱ در ۱۱:۳۸ ب.ظ

    یادش بخیر من این زبان رو حدود ۲ سال پیش با دیدن این کتاب آشنا شدم اما خیلی اختصاصیه واسه گرافیک و Visualizing ، خیلی کارای جالبی باهاش میشه انجام داد
    http://www.amazon.com/gp/product/1430219793?ie=UTF8&tag=processing09-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1430219793

    پاسخ
  • امیر حسین برزگر سلوکلائی گفته است: شهریور ۱۱, ۱۳۹۱ در ۸:۲۰ ق.ظ

    بسیار نیکو…. 😉

    پاسخ
  • مای چاپ گفته است: شهریور ۱۴, ۱۳۹۱ در ۴:۱۴ ب.ظ

    ممنون

    پاسخ
  • محمدرضا گفته است: شهریور ۱۷, ۱۳۹۱ در ۱۱:۵۰ ق.ظ

    سلام
    تشکر بابت این مطلی زیبا …
    یه سری کپی برداری از گرافیک سایتت کردم ، امیدوارم راضی باشی.
    بیا ببین و نظرت رو برام بزار …

    ممنون
    محمدرضا

    پاسخ
  • جاوید گفته است: مهر ۲۴, ۱۳۹۱ در ۳:۵۸ ب.ظ

    سلام
    خیلی ممنون از مطالب مفیدتون
    openframeworksهم ابزار معروف دیگه ای هست برای این کارا
    اما بدیشون اینه که تحت وب نمیشه خروجی گرفت , اکشن اسکریپت هم مشکلات پرفرمنسش..
    اما haxe پتانسیل خوبی داره چون هم میتونه این برنامه رو با سرعت کارایی بیشتر نسبت به اکشن اسکریپت خروجی swfبده و یا html5 canvas.

    پاسخ
    • مهدی خدادادی گفته است: مهر ۲۴, ۱۳۹۱ در ۴:۱۷ ب.ظ

      جاوید جان ، خبر خوب اینه که نسخه جدید Processing از وب حمایت می کنه . در ضمن مشکلات پرفرمنس اکشن اسکریپت رو باهاش موافق نیستم .

      پاسخ
  • جاوید گفته است: مهر ۲۵, ۱۳۹۱ در ۲:۲۱ ق.ظ

    @ خبر خوب اینه که نسخه جدید Processing از وب حمایت می کنه
    بسیار عالی ، فکر کنم Processing.jsمنظورتون باشه ، درسته ؟
    @ در ضمن مشکلات پرفرمنس اکشن اسکریپت رو باهاش موافق نیستم .
    آره بهتره اسمشو مشکل نزاریم ، اما واضحه که از زبونایی مثل javaو cppکند تره…

    پاسخ
    • مهدی خدادادی گفته است: مهر ۲۵, ۱۳۹۱ در ۹:۰۶ ق.ظ

      Processing.js منظورم نیست . خود Processing گویا این قابلیت رو اضافه کرده . البته در مورد جزییات و نحوه ساز و کارش اطلاعی ندارم .

      پاسخ
  • حسین گفته است: مهر ۲۵, ۱۳۹۱ در ۱۰:۲۹ ق.ظ

    البته از processing.js پشتیبانی میکنه و قبلا هم از اپلتهای جاوایی برای خروجی در وب پشتیبانی میکرد و میکنه اما به نظر در آینده حذف میشه.

    پاسخ
  • بنویسید و افتخار دهید تا بخوانیم :

    pixeler pixeler