شروع برنامه‌نویسی در چهارچوب Qt ( کتاب فارسی – مهرداد مومنی )

سلام

قبلا در همین وبلاگ تاپیکی در مورد Qt ( بخوانید کیوت ، لطفا ! ) زده بودم در اون به معرفی کتاب رسمی آموزش Qt پرداختم و مورد علاقه‌ی خیلی از دوستان قرار گرفت. در همون تاپیک به دلیل انگلیسی بودن کتاب از بنده در مورد مرجع فارسی برای کیوت خیلی زیاد سوال کردند ( و البته فقط به همین تاپیک محدود نشد و سوالات مشابه دیگری با ایمیل دریافت کردم ) و من تنها راه رو خوندن مرجع ذکر کردم.

اما خبر خوب اینه که مهرداد مؤمنی که البته برای گنو/لینوکسی‌ها نیاز به معرفی نداره اما برای ویندوزی‌ها بگم که برنامه‌نویسی حرفه‌ای و با تجربه‌ی Qt و Cpp که چندین برنامه‌ی Choqok ( کلاینت میکروبلاگینگ ) ، Blogilo ( کلاینت بلاگینگ – همین کلاینتی که باهاش دارم این مطلب رو می‌نویسم ) و MDic ( دیکشنری چندزبانه ) که همگی تحت پلتفرم کیوت ویا KDE SC نوشته شده‌اند، چندی پیش یک کتاب فارسی بسیار خوب برای شروع ( و چه عرض کنم ادامه‌ی ! ) برنامه‌نویسی کیوت منتشر کردند و از لحاظ کیفیت بسیار عالی هست.

متن توضیح انتشار این کتاب رو از وبلاگ ایشون می‌تونید در اینجا ببینید. ( با عنوان « شروع برنامه‌نویسی در چهارچوب Qt » )

به قول خودش دیگه قصدش دادن یک برنامه ( یا همون ماهی ) در اختیار کاربران نیست بلکه می‌خواد به ما ماهی‌گیری رو آموزش بده و بیشتر از نیمی از این کتاب رو خوندم و چقدر خوب ماهی‌گیری رو آموزش میده. توصیه می‌کنم حتما همین الان دانلودش کنید و اگر می‌توانید برای توسعه‌اش مبلغی بپردازید. ( بعد از دانلود این کتاب می‌توانید اطلاعات لازم برای واریز مبلغ رو دریافت کنید )

این متن هم از پست وبلاگ خودش که توضیحی در مورد کتاب هست :

کتاب مذکور در ۶۷ صفحه و مشتمل بر ۸ فصل به شرح زیر در اختیار برنامه‌نویسان علاقه‌مند قرار می‌گیرد.

  1. راه و روش Qt
  2. سیگنال‌ها و اسلات‌ها در Qt
  3. Containers and Iterators
  4. استفاده از QMake
  5. آشنایی با برنامه طراح کیوت (Qt Designer)
  6. کار با پایگاه‌داده‌ها در Qt
  7. بررسی چند تکنولوژی دیگر Qt
  8. استفاده از مستندات مرجع Qt

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

کاری ارزشمند که ارزش آن به هیچ‌وجه فقط با پول و مسائل مادی قابل جبران نیست.

آرزوی موفقیت برای همه‌ی کسانی که در راه آزادی نرم‌افزار و گسترش GNU تلاش می‌کنند.

MySQL, MYSQL, mysql این‌ها یکسان نیستند !

بنده شخصا به به‌کار بردن لغات به‌صورت درست و پایه‌ای اعتقاد زیادی دارم. بعد از برگشت به خونه برای تعطیلات تابستان ، کتاب مبانی کار با MySQL نوشته‌ی Matthew Stucky و ترجمه‌ی مهندس سعید هراتیان از گروه مهندسی پژوهشی ساحر و انتشارات روزنه ( به این میگن یک معرفی کتاب خوب ! ;) ) رو از میان کتابای قدیمی پیدا کردم.

MySQL Logo

در این کتاب به طور خوب و اصولی به بررسی MySQL و نحوه‌ی برنامه‌نویسی با زبان C و طراحی محیط گرافیکی با +GTK پرداخته است. در واقع می‌تونم بگم که تنها کتاب ترجمه شده‌ای بوده که تا حالا دیدم و به طور کامل به بررسی طراحی GTK پرداخته و در اون به توضیح Glade در گنوم هم پرداخته. ( اگرچه اصل هدف کتاب کار با MySQL هست )

جایی از کتاب وجود داره که یادم میاد هربار که این کتاب رو می‌خوندم توجهم بهش جلب میشد و تا حالا هر وقت خواستم که از این پایگاه داده نام ببرم بین این ۳ تا طرز نوشتن تفاوت قایل شدم و پیشنهاد می‌کنم شما هم درنظرشون بگیرید :

  1. MySQL یک پایگاه داده‌ی عمومی است. یعنی کل بسته‌ی نرم‌افزاری ( یعنی وقتی می‌خواهید از کل نرم‌افزار نام ببرید از طرز نوشتن استفاده می‌کنیم )
  2. MYSQL یک ساختار API در C است که برای اداره‌ی یک اتصال به یک پایگاه داده استفاده می‌شود. ( یعنی وقتی که تابع mysql_connect رو فراخوانی می‌کنید از این نوع متغیر در C استفاده می‌کنیم )
  3. mysql یک بسته‌ی سرویس‌گیرنده است. ابزاری که برای برقراری ارتباط با یک سرویس‌دهنده MySQL از طریق خط فرمان بکار می‌برید. mysql همچنین نام پایگاه‌داده‌ای است که اطلاعات سیستم را ذخیره می‌کند ( آنچه در پایگاه داده‌های دیگر sysobject یا systables نامیده می‌شوند )

پس همان‌طور که می‌بینید وقتی که با یک برنامه‌نویس با تجربه از طریق متن حرف می‌زنید ممکنه از حرف شما برداشت کاملا متفاوتی داشته باشد. مثلا mysql server کاملا غلطه ! و بایستی به صورت MySQL Server نوشته بشه تا معنای درست رو منتقل بکنه. یا وقتی که می‌گویید « mysql را راه‌اندازی کرده‌ام » ، ممکن است فردی به اینکه دستور mysql در خط فرمان را اجرا کرده باشید ، متوجه شده باشد ، در حالی که منظور شما راه‌اندازی پایگاه داده‌ی MySQL بوده است.

امیدوارم اگه تا حالا از این طرز نوشتن درست استفاده نکرده‌اید ، از این به بعد ازش استفاده کنید.

آرزوی موفقیت.

=-=-=-=-=
Powered by Blogilo

PHP-GTK آن روی دیگر PHP ( شدیدا به‌روز شد ! به همراه معرفی Site Fusion )

اگر تا حالا فکر می‌کردید که PHP فقط یک زبان سمت سرور ساده ( و نهایتا پیچیده !! ) هست ، اشتباه کردید. اشتباه شما در قسمت «سمت سرور یا Server Side» فرض کردن PHP بوده است. PHP برخلاف هدف خود ( که همون اسکریپت‌نویسی سمت سرور باشه ) میتونه به خوبی در سمت کلاینت کاربرد داشته باشه.

اگر با GTK آشنا نیستید ، حتما این صفحه‌ی ویکیپدیا رو بخونید. اگر حوصله ندارید ، من کار رو براتون آسون می‌کنم یه توضیحاتی میدم. GTK مخفف کلمات GIMP ToolKit می‌باشد ( به همین راحتی !! ). خوب اگر کاربر گنو/لینوکس باشید ، امکان نداره با برنامه‌ی دستکاری تصاویر GIMP آشنا نباشید. ( برای توضیح ویندوزی‌ها یه چیزی شبیه فتوشاپ. البته فتوشاپ باید بره جلو و بوق بزنه !! :دی ) یعنی درواقع GTK برای نوشتن GIMP توسعه داده شد که البته بوسیله‌ی Glib و دیگر کتابخانه‌هایی که با C نوشته شدند فریم‌ورک قوی +GTK یا جی‌تی‌کی‌پلاس رو بوجود آوردند.

معمولا برنامه‌های مبتنی بر +GTK رو با C می‌نویسن ولی به سایر زبان‌های برنامه‌نویسی هم Bindingهایی انجام شده که یکی از اون‌ها PHP است. شما می‌تونید با استفاده از PHP برنامه‌های گرافیکی سمت کاربر بنویسید. که البته بسیار راحت‌تر و ساده‌تر از C خواهد بود چرا که اولا با توابع غنی و بسیار راحت PHP می‌تونید کد بزنید و ثانیا دیگه قواعد دست و پا گیر C مثل اشاره‌گرها و حتی مشخص کردن انواع متغیرها رو ندارید !

البته خودم هم تازه دارم شروع می‌کنم که با PHP در GTK برنامه بنویسم ولی برای تست دو نمونه رو در گنو/لینوکس و ویندوز اجرا کردم که براتون میزارم.

قبل از هر چیز بایستی PHP-GTK رو روی سیستم‌عامل خودتون نصب کنید. روی گنو/لینوکس کافیه که بسته‌ی php-gtk یا php5-gtk رو نصب کنید ( ممکنه یه‌سری dependency داشته باشه ) و یا اگه می‌خواید از سورس نصب کنید ، اینجا رو ببینید. برای نصب در ویندوز خیلی راحته. فقط کافیه فایل باینری رو از اینجا بگیرید. بعد فایل رو Extract کنید و داخل یکی از درایوهاتون بریزید. حتی نیازی به دانلود خود PHP هم ندارید و یک نسخه به صورت پیشفرض داخلش هست. کافیه مثالی که در ادامه بحث می‌کنم رو داخل این پوشه بریزید و php filename.php رو بزنید. برای نصب در MacOSX اینجا رو ببینید.

(بقیه در ادامه‌ی مطلب)

» ادامه مطلب

بروزرسانی ITLPoll نسخه‌ی ۳٫۰٫۴ منتشر شد

خوب دوستان عزیز همون‌طور که قول داده بودم ، بیشتر از ۱ روز بر روی ITLPoll کار کردم و باگ Session Hijack که در قسمت مدیریت ITLPoll وجود داشت رو درست کردم. متاسفانه این باگ خیلی خیلی بچه‌گانه‌یی بود که نمی‌دونم چطور همچین اشتباه عجیبی مرتکب شده بودم. این باگ از اونجا ناشی می‌شد که برای جلسه‌ی مدیریت فقط نام‌کاربری رو ذخیره می‌کردم و خوب یک کاربر شرور (!) می‌تونه یک جلسه‌ی قلابی بفرسته و وارد مدیریت بشه.

البته مهم‌ترین کار این نسخه رفع این مشکل هست ولی یک سری مشکلات در SQLها و کدهای HTML قالب‌ها در جاهای مختلف وجود داشت که درستشون کردم.

همچنین کل سیستم رو از جاهای مختلف که قبلا روی itlpoll.sourceforge.net و itlpoll.trilexnet.com بودند ، به itlpoll.com منتقل کردم و منبع اصلی چک کردن آخرین نسخه هم وب‌سایت رسمی شد.

نکته‌ی مهم دیگه اینکه ، یک ستون به جدول prefix_users (که prefix رو خودتون قبلا هنگام نصب انتخاب کردید ) با نام last_session برای جلوگیری از باگ اضافه کردم که ID جلسه‌ی جاری کاربر رو ذخیره می‌کنه تا از دسترسی غیرمجاز کاربران دیگه جلوگیری کنه. پس برای بروزرسانی یا بایستی به صورت دستی یک ستون با نام last_session از نوع char 40 درست کنید. و یا اینکه بانک اطلاعاتی قبلی رو بیخیال بشید و دوباره نصب کنید.

در نهایت ، این نسخه رو می‌تونید از اینجا دانلود کنید.

برای تست رابط کاربر نهایی اینجا و برای تست رابط مدیران اینجا را کلیک کنید.
(نام‌کاربری: demo رمز عبور : demo)

————————————————————

تست دموی آخرین نسخه‌ی فارسی :

به لینک‌های آخر این صفحه مراجعه کنید.

ـــــــــــــــــــــــــــــــــــــــــ

پ.ن: بعد از آخرین امتحانم بر روی نسخه‌ی ۳٫۱ کار خواهم کرد. که قول می‌دم چیز خیلی جالبی در بیاد. از مهم‌ترین ویژگی‌هاش امکان فعال‌کردن بیشتر از یک نظرسنجی به طور همزمان هست که می‌تونید یک نظرخواهی تمام‌عیار رو داشته باشید. پس فعلا ;)

=-=-=-=-=
Powered by Blogilo

مقاله : شروعی برای JSP در گنو/لینوکس

در این پست می‌خواهم مقاله‌ای با نام «شروعی برای JSP» رو که حاصل کار بنده هست معرفی کنم. این مقاله حاصل بیش از ۲ ماه کار بر روی JSP و بیشتر از ۴ روز تمام بر روی نگارش مقاله است. امیدوارم این مقاله بتواند شروعی برای کسانی باشد که می‌خواهند آزادی در نرم‌افزار را با زبان برنامه‌نویسی زیبای جاوا ترکیب کنند.

از همه‌ی شما خواهش می‌کنم همان طور که بنده حاصل پروژه‌های دانشجویی خودم را بی کم و کاست در اختیار شما قرار می‌دهم ، شما هم در نقل مطلب و منبع آن کوتاهی نکرده و هرجایی که آن را نقل می‌کنید ، منبع آن را ذکر کنید.

در این مقاله ابتدا به مقدمه‌ای در مورد JSP پرداخته شده و سپس به مقایسه‌ای مفصل بین سه زبان رقیب سمت سرور ( یعنی PHP ، JSP و ASP ) پرداخته شده است. بعد از آن سعی کرده‌ام تا به بررسی مختصری از سرولت (Servlet) در جاوا بپردازم. پس از بررسی سرولت که پیش نیاز ، JSP است به ورود به JSP پرداخته‌ام.

بعد از آن به بررسی قواعد JSP مانند موارد زیر پرداخته‌ام :

Directives -۱

۲- تعاریف (Declarations)

۳- عبارات (Expressions)

۴- Scriptlets

۵- توضیحات (Comments)

سپس به بحث مهم محدوده‌ی عملکرد اشیا پرداخته‌ام که امکان دستیابی به شیء‌های مختلف JSP در مناطق مختلف را مشخص می‌کند.

سپس بحث زیبای Beanهای جاوا مطرح شده است. با استفاده از Beanهای جاوا شما می‌توانید برنامه‌نویسی با استفاده از عناصر از قبل تولید شده را در واقع تجربه کنید. در این مقاله چندین مثال با استفاده از Java Beans بررسی شده مانند نحوه‌ی گرفتن عناصر فرم‌ها و مقداردهی آن‌ها.

» ادامه مطلب

۶ ترفند در PHP که ممکن است تا حالا انجام نداده باشید !

با وجود اینکه خودم سال‌هاست PHP کار می‌کنم اما مطالب کمی در مورد PHP در این وبلاگ می‌نویسم. دلیلش رو نمی‌دونم ولی شاید این ترجمه بتونه من رو در نوشتن دوباره‌ی مطالب در مورد

PHP

PHP کمک کنه.
این ترفندها رو شاید تا حالا دیده باشید ولی برای کاربرانی که می‌خواهند تازه شروع کنند به یادگیری PHP می‌تونه خیلی مفید و جذاب باشه. خوب شروع می‌کنیم.

ترفند ۱ : شمارش کاراکترهای یک رشته

اغلب برنامه‌نویسان برای این کار از تابع strlen() استفاده می‌کنند اما یک راه حل راحت‌تر وجود داره. البته در این روش بایستی تعداد کاراکتری که می‌خواهید کنترل کنید را داشته باشید.

<?php
$string = ‘testing’;

if(isset($string[6]))
echo “The string ‘$string’ is at least 7 characters long.”;
else
echo “The string ‘$string’ is less than 7 characters long.”;
?>

ترفند ۲ : استفاده از Echo به عنوان یک تابع

همیشه برای اتصال رشته‌ها در PHP معمول شده است که از نقطه (.) استفاده شود. اما شما در تابع echo می‌توانید رشته‌هایتان را به صورت کاما (,) از هم جدا کنید.

» ادامه مطلب

معرفی کتاب رسمی آموزش برنامه‌نویسی کیوت (Qt) با سی‌پلاس‌پلاس

وقتی صحبت از فریم‌ورکی با این قدرت و عظمت می‌شود بنده و امثال بنده توانایی گفتن حتی قسمتی از اون رو نخواهیم داشت. اما کسانی که علاقه به KDE داشته باشن امکان نداره که با Qt ( بخوانید کیوت ) آشنا نباشند. کیوت یکی از چندین فریم‌ورک قدرتمندی است که محصول دنیای گنو/لینوکس ( و قبلا یونیکس) هستند. ( محصولات دیگری مانند +GTK و wxWidgets و چیزای دیگه که نمی‌دونم ! )

QtLogo

تعطیلات امسال خیلی برام مفید بود. چون کتاب بسیار قوی به‌نام «C++ GUI Programming Using Qt» رو در پشته‌ی (!) مطالعات آزادم داشتم و عید امسال وقتش رسیده بود. باور کنید حتی وقتی که فقط ۸-۷ فصل این کتاب رو بخونید از این ملت تعجب خواهید کرد که چرا این ملت به سراغ چیزهایی مثل محصولات ویژیوال مایکروسافت میرن ؟!

Qt علاوه بر اینکه وابسته به محیطی که در اون برنامه‌نویسی می‌کنید نیست بلکه به شما امکان استفاده از کتابخانه‌های بسیار وسیعی رو میده که حتی به فکرتون هم خطور نمی‌کنه. به خصوص اینکه با پشتیبانی خوب شرکت نوکیا از Qt هم اکنون محیط مجتمع برنامه‌نویسی کیوت برای هرسه سیستم‌عامل محبوب ویندوز ، گنو/لینوکس و مک‌او‌اس از محیط‌های ویژوال مایکروسافت خیلی خیلی بهتره.

در طول این تعطیلات هم برنامه‌های فصل‌های ۱ تا ۵ رو تک به تک نوشتم و از لحظه-لحظه‌ی نوشتن کدهام لذت می‌بردم. به خصوص اینکه کدها رو با بدون تغییرات روی کامپیوتر دیگه‌ای که نزدیکم بود و روی ویندوزش تست می‌کردم. البته شروع یه مقدار سخته چون در این کتاب از SDK استفاده نشده و فقط از Qt Designer استفاده شده و ارتباط بین فایل‌های UI و کدهای CPP به صورت دستی برقرار شده.

در این کتاب به صورت کامل کامپایل و استفاده از برنامه‌های نوشته شده برای هرکدام از سیستم‌عامل‌های محبوب رو توضیح داده و تنها به یک OS تکیه نکرده.

» ادامه مطلب

مسئله اینشتین : آیا جزو ۲ درصد مردم هوشمند جهان هستید ؟!!

این ترم برای هوش مصنوعی ، استادمون چندتا مسئله داده بود که یکیشون مسئله‌ی اینشتین (Einstein) بود. اینشتین ادعا کرده که ۹۸ درصد مردم جهان نمی‌تونن این مسئله رو حل کنن! حالا صرف‌نظر از روش‌های حل مسئله در هوش مصنوعی اگه می‌خواید هوش خودتون رو آزمایش کنید ، بفرمایید. البته من تا حالا افراد زیادی رو دیدم که این مسئله رو حل کردن و تا جایی که علمم قد بده ، بیشتر از ۲ درصد میشن (!!). به هر حال اگر کامپیوتر رو با انسان مقایسه کنیم و اون رو یک عامل هوشمند در نظر بگیریم ، پس باید بتونه اون رو حل بکنه ( چون به قدر کافی سریع و با دقت هست و هوش رو هم ما که هوشمند‌ترین عامل‌ها هستیم ، بهش داده‌ایم )

به هر حال شروع می‌کنیم: ۵ عدد خانه‌ی منحصربفرد داریم که دارای رنگ‌های مختلف و غیریکسان هستند، در هر کدام از این خانه‌ها ، ۵ نفر با پنج ملیت جداگانه زندگی می‌کنند. این ۵ نفر هرکدام نوشیدنی متفاوت می‌نوشند ، حیوان متفاوت نگهداری می‌کنند و سیگار متفاوت می‌کشند. ماهی در کدام خانه زندگی می‌کند ؟

راهنمایی‌ها :

۱- مرد بریتانیایی در خانه قرمز زندگی می‌کند.

۲- مرد سوئدی سگ نگه می‌دارد.

۳- دانمارکی چای می‌نوشد.

۴- خانه سبز در سمت چپ خانه سفید قرار دارد.

۵- صاحب خانه سبز قهوه می‌نوشد.

۶- مردی که سیگار PallMall می‌کشد ، پرنده نگه می‌دارد.

۷- صاحب خانه زرد رنگ سیگار DunHill می‌کشد.

۸- مردی که در خانه وسطی زندگی می‌کند ، شیر می‌نوشد.

۹- مرد نروژی در خانه اول زندگی می‌کند.

۱۰- مردی که سیگار Blends می‌کشد در کنار مردی که گربه نگه می‌دارد زندگی می‌کند.

۱۱- مردی که اسب نگه می‌دارد ، در کنار مردی که سیگار DunHill می‌کشد زندگی می‌کند.

۱۲- صاحب خانه‌ای که سیگار BlueMaster می‌کشد ، آبجو می‌نوشد.

۱۳- مرد آلمانی سیگار Prince می‌کشد.

۱۴- مرد نروژی در کنار خانه‌ی آبی زندگی می‌کند.

۱۵- مردی که سیگار ‌Blends می‌کشد ، همسایه‌ای دارد که آب می‌نوشد.

قبل از نگاه کردن به حل مسئله ، ابتدا سعی کنید با هر روشی که می‌تونید دستی اون رو حل کنید. ( بهتره که یک ماتریس از خانه‌ها و ملیت‌ها یا عناصر دیگه بکشید و بوسیله‌ی اون ، مسئله رو حل کنید )

( حل مسئله و توضیحات در ادامه‌ی نوشته )

» ادامه مطلب

انتشار نسخه‌ی ۳٫۰٫۲ سیستم نظرسنجی آنلاین ITLPoll

بعد از حدود ۲ روز کار بر روی نسخه‌ی ITLPoll 3.0.1 حالا این نسخه‌ رو به همراه ویژگی‌های بسیار جدید تقدیمتان می‌کنم. تمام شدن ترم هم مزیت‌های خوبی داره که از جمله‌ی آن انتشار این نسخه از ITLPoll هست.

ویژگی‌ها و تغییرات اصلی در این نسخه به صورت زیر هستند :

۱- امکان انتخاب چندین گزینه به طور همزمان برای هر نظرسنجی

۲- کنترل بیشتر بر روی کوکی‌ها و امکان شرکت در نظرسنجی‌های جدید

۳- اصلاح مشکل لینکر صفحه‌ی خانگی (include_itlpoll.php)

۴- بهبود سازی قالب‌ها و پالایش بهتر بر روی متغیرهای ورودی و خروجی

توضیحی مختصر :

مورد اول که روشنه. مدیر سیستم می‌تونه در قسمت مدیریت برای هر نظرسنجی گزینه‌ی « نظرسنجی چندگانه » رو انتخاب کنه تا هر کاربر در هر بار شرکتش در نظرسنجی بتواند به جای تنها یک گزینه ، چند گزینه ( یک ، چند و یا همه‌ی گزینه‌ها ) را انتخاب کند.

مورد دوم شاید یک کمی گنگ باشه. در نسخه‌های قبلی هنگامی که مدیر یک نظرسنجی را فعال می‌کرد ، کاربران نظرهای خودشان را ثبت می‌کردند و دیگر امکان شرکت در نظرسنجی ( حتی در صورت فعال شدن یک نظرسنجی جدید دیگر ) را نداشتند. اما در این نسخه به محض فعال‌شدن یک نظرسنجی جدید ، کاربرانی که در نظرسنجی‌های قبلی شرکت کرده بودند ، کوکی‌های مرورگرشان ریست شده و مجددا می‌توانند ( فقط برای یکبار ) در نظرسنجی جدید شرکت کنند ( که طبعا می‌تواند چندگانه یا تکی باشد )

مورد سوم مشکلی بود که دوستان بهم اطلاع دادن ( متاسفانه خودم متوجهش نشده بودم ! ) وقتی که کاربر سیستم را از طریق لینکر صفحه‌ی خانگی (include_itlpoll.php) در صفحه‌ی اول سایتش قرار می‌داد ، لینک‌های نتایج و آرشیو و کلید ثبت نتایج به همین صفحه‌ی جاری خانگی ( به جای پوشه‌ی اصلی ITLPoll ) اشاره می‌کردند که در این صورت در صفحه‌ی Pop-Up بازشده کل Home Page باز می‌شد که در این نسخه رفع شد.

(لینک دانلود در ادامه نوشته ) » ادامه مطلب

مقدمه‌ای بر OpenGL در ++C

با عرض پوزش به دلیل مشکلات سرور سایت تمامی نظرات و پست‌ها از تاریخ دهم دی حذف شده‌اند !

ترم چهار که داشتیم گرافیک کامپیوتری رو می‌خواندیم ، استادمون گفت که مجبوریم برنامه‌نویسی OpenGL رو تحت Visual Basic آموزش بدیم. دلیلش هم اینه که منابع فارسی آزاد فارسی برای OpenGL در ++C وجود نداره. و این شده بود یک مشکل بزرگ برای دانشجوهایی که اکثرا C و یا ++C خوانده بودن. برای همین با پیشنهاد استاد تصمیم گرفتم که یک ماه از تابستانم رو برای این کار بزارم ( در واقع حدود ۲ هفته به طور موثر ) و به صورت مقدمه‌ای هم که شده مقاله‌ای بنویسم.

نتیجه شد این که ۳۰ صفحه در مورد راه‌اندازی OpenGL و شروع برنامه‌نویسی در ویندوز XP به همراه Visual Studio 2005 . درسته ! خودمم خیلی دوست نداشتم روی این پلتفرم بنویسم ولی پیش خودم فکر کردم که اول باید چند فصل بنویسم که بچه‌ها کار با گنو/لینوکس رو یاد بگیرن. ولی خوشبختانه در این جزوه از کتابخانه‌ی قابل انتقال GLUT استفاده شده که کدها را بدون هیچ‌گونه تغییری می‌توانید در گنو/لینوکس به کار ببرید.

تنها چیزی که برای برنامه‌نویسی OpenGL بوسیله‌ی ++C در گنو لینوکس دارید این است که بسته‌ی freeglut را دانلود و نصب کنید. برای دبیان یا ابونتو کافی است که از سایت مخازن اون رو جستجو کنید تا به نام دقیق برسید ( برای مثال هم‌اکنون برای آخرین نسخه‌ی ابونتو باید این پکیج را نصب کنید freeglut3 و به همراه freeglut3-dev )

دلیل اینکه در گنو/لینوکس GLUT اصلی را نداریم ، آزاد نبودن کد اصلی آن است. ( این قضیه برای خود OpenGL هم صدق می‌کند که در گنو/لینوکس شبیه‌سازی آن یعنی Mesa 3D را داریم )

این جزوه به طور کامل تست شده و برای هر کدی که قرار داده شده ، خروجی آن نیز به صورت شکل آمده است.

شما را به خواندن مقدمه‌ی آن جلب می‌کنم :

» ادامه مطلب