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

نام تاپیک: نوشتن یک تابع گرافیگی

  1. #1

    نوشتن یک تابع گرافیگی

    سلام دوستان من با استفاده از کد زیر یک شکل بیضی رو رسم میکنم

    void


    drawRotateEllipse(int centerx, int centery, int width, int height, double angle, int clr) {



    const double PI = 3.14159265358979323846;



    int steps = 172;



    double beta = -angle * (PI / 180);



    double sinbeta = Math.Sin(beta);



    double cosbeta = Math.Cos(beta);



    for (int i = 0; i < 360; i += 360 / steps)

    {





    double alpha = i * (PI / 180);



    double sinalpha = Math.Sin(alpha);



    double cosalpha = Math.Cos(alpha);



    double X = centerx + (width * cosalpha * cosbeta - height * sinalpha * sinbeta);



    double Y = centery + (width * cosalpha * sinbeta + height * sinalpha * cosbeta);



    m.SetPixel((

    int)X,(int)Y,Color.Red);

    } }

    }





    کد بالا با قرار دادن یک سری نقطه کنار هم شکل بیضی رو میکشه حالا من می خوام این بیضی رو تو پر بکشم یعنی fill بشه مثل این شکل میشه یک راه پیشنهاد کنید که باید چطوری الگوریتم را بنویسم


    با تشکر

  2. #2

    نقل قول: نوشتن یک تابع گرافیگی

    سلام. اگه از توابع پر کننده رنگ استفاده کنی نمی شه؟
    fill کنی بعد از اینکه کشیدیش
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  3. #3

    نقل قول: نوشتن یک تابع گرافیگی

    ببنید کلا همچین دستور وجود داره که بک بیضی تو پر بکشه با هر رنگی دوست داریم اما من نیمتونم از این دستور ها استفاده کنم یعنی می هوام اون تابع رو خودم درست کنم

  4. #4
    کاربر دائمی آواتار saman6384
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    سن
    40
    پست
    325

    نقل قول: نوشتن یک تابع گرافیگی

    چیزی که به نظر من میاد اینه که شما بیا image ای که توش بیضی رو رسم کردی خط به خط پروسس کن از بالا به پایین
    پیکسلهای رنگی اول و آخر هر خط رو در بیار و پیکسلهایه بینشونم رنگی کن!

  5. #5

    نقل قول: نوشتن یک تابع گرافیگی

    این طوری که وحشتناک کند می شه
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  6. #6

    نقل قول: نوشتن یک تابع گرافیگی

    به این روش نمیشه چون تو صفحه شکل های دیگه هم قرار داره بعد این کار عملا غیر ممکنه و یا اگه ممکن باشه درست نیست -من 2 تا نقطه دارم حطوری میشه دور این دو تا نقطه یک خط بکشم و توشو رنگی کنم

  7. #7

    نقل قول: نوشتن یک تابع گرافیگی

    همون موقع که داری نقطه میذاری جاش خط بگذار
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  8. #8

    نقل قول: نوشتن یک تابع گرافیگی

    برای ایجاد یک پاره خط به دو نقطه احتیاج من در هر لحظه 1 نقطه دارم

  9. #9

    نقل قول: نوشتن یک تابع گرافیگی

    مختصات نقطه اول رو بذار تو متغیر first, Last.
    از نقطه دوم به بعد وصل کن به last و دومی رو بذار تو last تا آخری.
    آخری رو هم به first وصل کن.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  10. #10

    نقل قول: نوشتن یک تابع گرافیگی

    چرا از توابع خود C#‎ برا اینکار استفاده نمیکنین ؟

            private void Form2_Paint(object sender, PaintEventArgs e)
    {
    Rectangle beysi = new Rectangle(100, 100, 300, 100);
    e.Graphics.TranslateTransform(beysi.Width - beysi.X / 2, beysi.Height - beysi.Y / 2);
    e.Graphics.RotateTransform(45.0f);
    e.Graphics.FillEllipse(Brushes.Blue, beysi);
    }


    اینم کد خودت ...


    GraphicsPath path = new GraphicsPath();//<---------------------
    int steps = 172;
    double beta = -angle * (Math.PI / 180);
    double sinbeta = Math.Sin(beta);
    double cosbeta = Math.Cos(beta);
    for (int i = 0; i < 360; i += 360 / steps)
    {
    double alpha = i * (Math.PI / 180);
    double sinalpha = Math.Sin(alpha);
    double cosalpha = Math.Cos(alpha);
    double X = centerx + (width * cosalpha * cosbeta - height * sinalpha * sinbeta);
    double Y = centery + (width * cosalpha * sinbeta + height * sinalpha * cosbeta);
    m.SetPixel((int)X, (int)Y, Color.Red);
    path.AddLines(new Point[] { new Point((int)X, (int)Y) });//<---------------------
    }
    Graphics.FromImage(m).FillPath(Brushes.Blue, path);//<---------------------
    آخرین ویرایش به وسیله exlord : دوشنبه 09 خرداد 1390 در 18:17 عصر

  11. #11
    کاربر دائمی آواتار saman6384
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    سن
    40
    پست
    325

    نقل قول: نوشتن یک تابع گرافیگی

    نقل قول نوشته شده توسط NIMA_1981 مشاهده تاپیک
    برای ایجاد یک پاره خط به دو نقطه احتیاج من در هر لحظه 1 نقطه دارم
    خوب یه نقطه میشه نقطه روی محیط
    یه نقطه میشه وسط بیضی

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

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