نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل در برنامه paint

  1. #1

    مشکل در برنامه paint

    در کد نویسی ابزار fill color دچاره مشکل شدم از تابع بازگشتی استفاده کردم درست عمل می کنه ولی stack پر میشه و خطا میده (حالت های تکراری رو هم در نظر نگرفتم )
    اگه کسی تابعی یا روشی می تونه پیشنهاد بده ممنون می شم.....

    یه اشکال دیگه در کد نویسی Brush هست که درست عمل می کنه ولی وقتی حرکت موس سریع میشه خط کشیده شده به صورت یه خط ممتد نیست ! فکر می کنک باید از do event استفاده کنم ولی بلد نیستم در این رابطه هم اگه راهنماییم کنین ممنون می شم .


  2. #2
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    35
    پست
    387

    نقل قول: مشکل در برنامه paint

    ببین دوست عزیز برای پر کردن 1 شکل باید از الگوریتم flood fill استفاده کنی . راه حل بازگشتی که شما بکار بردی تا حدودی صحیحه . برای حل مشکل خانه های تکراری میتونی قبل از اینکه آدرس خونه رو به تابع fill بدی رنگشو چک کنی . البته در موارد بزرگتر مثلا رنگ کردن کل صفحه بازم مشکل stack وجود داره . برای حل اون مشکل من 1 راه حل ابداعی (دودره بازی) بکار بردم . میتونی از 1 تابع بازگشتی مدیریت شده استفاده کنی . به این صورت که . مثلا تابع ما وقتی 5000 بار خودشو فراخوانی بکنه با مشکل stack مواجه میشه .. درست ؟ حالا ما با کمک چنتا متغییر کنترلی کاری میکنیم که تابع 4000 بار بیشتر خودشو فراخوانی نکنه و وقتی به این سقف رسید . مقدار آدرس خونه بعدی رو توی 1 متغییر global بزاره و کار خودشو تموم کنه . و وقتی stack به حالت عادی برگشت . دوباره خونه ذخیره شده رو با همون تابع فراخوانی میکنیم (یعنی بجای اینکه 1 بار کل قسمتها رو رنگ بزنیم . کار رو تقسیم بندی میکنیم و در چند مرحله انجام میدیم . 4000 تا 4000 تا ) . البته این کار زیاد اصولی نیست .

    اگه میتونستید از gdi استفاده کنید کارتون خیلی راحت تر بود .

    در مورد مشکل حرکت ماوس هم . من قبلا با چنین مشکلی برخورد نکردم ولی میتونید از 1 راه حل خیلی ساده استفاده کنید . وقتی برنامتون اجرا میشه توی بخش تنظیمات ماوس ویندوز حساسیت ماوس رو کم کنید تا کاربر نتونه زیاد ماوسشو تکون بده .!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •