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

نام تاپیک: گرافیک و شرط پر کردن دایره

  1. #1

    گرافیک و شرط پر کردن دایره

    آیا می توان برای رسم دایره در سی شارپ شرط گذاشت؟!
    یعنی گفت در آن محدوده ای که دایره را رسم می کند, پیکسل های زیر خود را ببیند و اگر رنگ x داشت , آن را پر نکند...
    ممنون میشم جواب شامل و کامل بدید

  2. #2

    نقل قول: گرافیک و شرط پر کردن دایره

    2 روش به نظرم میرسه ...
    1 - دایره رو بت Bitmap.SetPixel رسم کنین و هر نقطه رو که نمیخواین خالی بزارین ...
    2 - قبل از رسم دایره خونه هایی رو که باید بمونن توی یه لیست نگه دارین ( منظور مختصاتشون ) ... بعد از رسم دایره با SetPixel اون نقاط رو دوباره با رنگ دلخواه رسم کنین ...

  3. #3

    نقل قول: گرافیک و شرط پر کردن دایره

    شرمنده!
    من خیلی بیش از حد آماتورم!
    اینا رو نمی دونم چه جوری باید پیاده سازی کنم!
    من فقط با FillEllipse دایره رسم میکنم!
    با یه بار minimze کردن هم خودش پاک میشه!
    میشه هم راه این را بگید هم قبلی را بیشتر توضیح بدید یا کدش را بگید؟

  4. #4

    نقل قول: گرافیک و شرط پر کردن دایره

    این روش اول :
                Bitmap bt = new Bitmap(pictureBox1.Width, pictureBox1.Height);
    //------------nogati ke nemikhaym rush rang beshe------
    Graphics g = Graphics.FromImage(bt);
    g.DrawLine(Pens.Red, new Point(10, 10), new Point(300, 300));
    g.DrawLine(Pens.Red, new Point(10, 40), new Point(300, 100));
    //-----------------------------------------------------

    Rectangle bounds = new Rectangle(new Point(20, 20), new Size(200, 200));//mostatili ke dayere tuye un garar migire
    double R = bounds.Width / 2;//shoae dayere
    //(x-a)^2 + (y-b)^2 = R^2 // formule dayere (a,b)=> fasele az mabdae mokhtassat
    int a = bounds.Width / 2 + bounds.X;
    int b = bounds.Height / 2 + bounds.Y;
    for (int x = bounds.X; x <= bounds.Right; x++)
    {
    for (int y = bounds.Y; y <= bounds.Bottom; y++)
    {
    if (Math.Pow(x - a, 2) + Math.Pow(y - b, 2) <= Math.Pow(R, 2)) //nogte dakhele dayere ast
    {
    if (bt.GetPixel(x, y) != Color.FromArgb(255,0,0))//nogati ke rageshun Red hast ignore mikone
    bt.SetPixel(x, y, Color.Black);
    }
    }
    }

    pictureBox1.Image = bt;

  5. #5
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: گرافیک و شرط پر کردن دایره

    این روش روش خوبیه ولی یه روش هم هست که از نامعتبرسازی اسفاده میکنه و دیگه نیازی به picturebox هم نیست.
    اون روش اینه:
            bool check;

    private void button1_Click(object sender, EventArgs e)
    {
    check = true;
    Invalidate();
    }

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
    if (check)
    {
    Graphics g = e.Graphics;
    g.FillEllipse(Brushes.Red, 200, 250, 600, 512);
    g.Dispose();
    }
    }

    در ضمن با قرار دادن این کد بعد از Graphics g = e.Graphics; میتوانید کیفیت تصویر را بالابرده و از بره خوردن جلوگیری کنید:
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality  ;
    آخرین ویرایش به وسیله haghft : دوشنبه 05 اردیبهشت 1390 در 10:17 صبح

  6. #6

    نقل قول: گرافیک و شرط پر کردن دایره

    نقل قول نوشته شده توسط haghft مشاهده تاپیک
    این روش روش خوبیه ولی یه روش هم هست که از نامعتبرسازی اسفاده میکنه و دیگه نیازی به picturebox هم نیست.
    اون روش اینه:
    اینو که خودشون بلد هستن ... حالا این قسمتش کو ؟
    نقل قول نوشته شده توسط aapalireza مشاهده تاپیک
    در آن محدوده ای که دایره را رسم می کند, پیکسل های زیر خود را ببیند و اگر رنگ x داشت , آن را پر نکند...

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

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