تور لحظه آخری
امروز : چهارشنبه ، 5 اردیبهشت 1403    احادیث و روایات:  امام محمد باقر(ع):کسی که از روی بی میلی،بدون عذر و علت نمازجماعت را که اجتماع مسلمانان است ترک کند...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

بلومبارد

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

تعمیر کاتالیزور

تعمیر گیربکس اتوماتیک

دیزل ژنراتور موتور سازان

سرور اختصاصی ایران

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

ماربل شیت

تشریفات روناک

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

رنگ استخری

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

تعمیرات مک بوک

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

سیسمونی نوزاد

پراپ تریدینگ معتبر ایرانی

نهال گردو

صنعت نواز

پیچ و مهره

خرید اکانت اسپاتیفای

صنعت نواز

لوله پلی اتیلن

کرم ضد آفتاب لاکچری کوین SPF50

دانلود آهنگ

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

 






آمار وبسایت

 تعداد کل بازدیدها : 1797691668




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

چگونه مي توان در محيط گرافيك زبان c يك شكل پيچيده را حركت داد؟


واضح آرشیو وب فارسی:سایت ریسک: Saeed_TnT20-12-2004, 09:02 PMچگونه مي توان در محيط گرافيك زبان c يك شكل پيچيده را حركت داد؟ منبع : http://www.pooyeshr.com در محيط گرافيك در زبانهاي برنامه نويسي تحت DOS اشكال ساده مثل مستطيل و دايره را مي توان با پاك كردن و كشيدن مجدد براحتي جابجا نمود اما حركت اشكال پيچيده با اين روش بسيار وقت گير مي باشد بطوريكه پاك كردن و كشيدن دوباره شكل كاملا به چشم مي آيد. در چنين مواقعي مي بايست شكل مورد نظر را كه در داخل يك مستطيل فرضي قرار دارد , وارد يك حافظه كمكي نمود و محتويات اين حافظه را در نقطه اي دلخواه در صفحه چاپ كرد . در ابتداي كار يك متغير از نوع int تعريف كنيد كه اندازه شكل محاسبه شود و در آن قرار گيرد. يك متغير نيز از نوع *void تعريف كنيد كه در واقع بافري است كه رنگ پيكسل هاي مستطيل در آن به ترتيب قرار مي گيرند تا در موقع لزوم به همان ترتيب چاپ شوند: int size; void* buffer; حال مي بايست اندازه مستطيل را با تابع imagesize محاسبه و در متغير size بريزيد: size=imagesize(x1,y1,x2,y2); كه پارامتر هاي آن به ترتيب مختصات گوشه بالاي سمت چپ مستطيل و گوشه پايين سمت راست آن مي باشند. حال حافظه اي را با تابع malloc به اندازه size به buffer اختصاص دهيد: buffer=malloc(size); الگوي اين تابع در سر فايل alloc.h قرار دارد.(الگوي ساير توابع گفته شده در graphics.h مي باشد.) حال نوبت به خواندن پيكسلهاي مستطيل مي باشد. اين كار را با تابع getimage انجام دهيد كه پيكسلها را خوانده و در بافر قرار مي دهد: getimage(x1,y1,x2,y2,buffer); كار ما براي خواندن مستطيل به پايان رسيده است . فقط كافيست بافر خوانده شده را با تابع putimage در نقطه دلخواه چاپ كنيم : putimage(x,y,buffer,COPY_PUT); دو پارامتر اول اين تابع مختصات نقطه مقصد مي باشند .(گوشه بالاي سمت چپ مستطيل در مقصد) پارامتر دوم بافر محتوي شكل و پارامتر سوم تعيين كننده نوع چاپ شدن شكل مي باشد كه داراي حالات زير است : Constant Value Meaning ---------------------------------------------------------------------------------------------------------- COPY_PUT 0 Copies source bitmap onto screen XOR_PUT 1 Exclusive ORs source image with that already onscreen OR_PUT 2 Inclusive ORs image with that already onscreen AND_PUT 3 ANDs image with that already onscreen NOT_PUT 4 Copy the inverse of the source دقت كنيد كه در پايان برنامه حتما حافظه گرفته شده با دستور malloc را آزاد كنيد: free(buffer); توجه كنيد كه شكل لزوما يك مستطيل نيست بلكه براي ذخيره سازي شكل در حافظه يك مستطيل فرضي دور شكل در نظر گرفته مي شود . براي مثال ميتوانيد كد زير را كپي كرده و در محيط TC اجرا كنيد : #include #include #include int main(){ int driver=DETECT,mode=0,size,column,row,horiz,vert; void* buffer; initgraph(&driver,&mode,"c: cgi"); setcolor(LIGHTBLUE); rectangle(2,2,200,40); setfillstyle(SOLID_FILL,BLUE); floodfill(100,20,LIGHTBLUE); settextstyle(SMALL_FONT,HORIZ_DIR,7); setcolor(WHITE); outtextxy(12,10,"www.PooyeshR.com"); rectangle(0,0,600,400); size=imagesize(1,1,201,41); buffer=malloc(size); getimage(1,1,201,41,buffer); column=1; row=1; horiz=1; vert=1; while(!bioskey(1)){ putimage(column,row,buffer,COPY_PUT); column+=vert; row+=horiz; if(column==399 || column==1) vert=-vert; if(row==359 || row==1) horiz=-horiz; } free(buffer); closegraph(); restorecrtmode(); return 0; } MaSoOd14-01-2005, 06:54 AMممنون از مقالت سعید جان اینم لینکش : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! توجه : این سایتی که برا آپلود انتخاب شده محدودیت پهنای باند و ... نداره حالا اگه کسی به هر دلیلی نتونست این مقاله رو دانلود کنه تو تاپیکی که " تمام مقالات انجمن آموزش رو بصورت PDF دریافت کنید بالای انجمن هست یه پست بده و اسم مقاله رو بگه تا من براش مقاله رو ایمیل بزنم انتخاب با شما بصورت word یا pdf omidyass09-03-2008, 10:39 PMعالی بود Mer30 m.nasehi02-08-2008, 01:34 AMممنونم . این مطلب شدیدا کمکم کرد . سیدمحسن میرمحمدی07-08-2008, 01:43 PMخیلی عالی بود . انشاا... در تمامی مراحل زندگی موفق باشی. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 239]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن