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

نام تاپیک: راهنمایی برای برنامه رسم دایره

  1. #1

    راهنمایی برای برنامه رسم دایره

    سلام. من برنامه زیر رو برای رسم رایره نوشتم. اما برنامه جواب نمیده.
    لطفا راهنمایی کنید بگید مشکل از کجاست

    bool
    ready = false;

    int xCenter, yCenter, radius;
    int xr, yr;

    Bitmap bt = newBitmap(1000, 1000);

    privatevoid pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
    ready =
    true;
    xCenter = e.X;
    yCenter = e.Y;
    }
    privatevoid pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
    if (ready)
    {
    xr = e.X;
    yr = e.Y;
    int a=xr - xCenter;
    int b=yr - yCenter;

    radius =
    Convert.ToInt32(Math.Sqrt(Math.Pow(a, 2) - Math.Pow(b, 2)));

    pictureBox1.Refresh();
    }
    }
    privatevoid pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
    ready =
    false;
    }
    privatevoid pictureBox1_Paint(object sender, PaintEventArgs e)
    {

    int x=0;
    int y=radius;
    int p=1-radius;

    circleplotpoints(xCenter ,yCenter ,x,y);
    while(x<y)
    {
    x++;
    if(p<0)
    p+=2*x+1;
    else
    {
    y--;
    p+=2*(x-y)+1;
    }
    circleplotpoints(xCenter ,yCenter ,x,y);
    }
    }

    void circleplotpoints(int xCenter, int yCenter, int x, int y)
    {
    bt.SetPixel(xCenter + x, yCenter + y, Color.Black);
    bt.SetPixel(xCenter - x, yCenter + y,
    Color.Black);
    bt.SetPixel(xCenter + x, yCenter - y,
    Color.Black);
    bt.SetPixel(xCenter - x, yCenter - y,
    Color.Black);
    bt.SetPixel(xCenter - y, yCenter + x,
    Color.Black);
    bt.SetPixel(xCenter - y, yCenter + x,
    Color.Black);
    bt.SetPixel(xCenter - y, yCenter + x,
    Color.Black);
    bt.SetPixel(xCenter - y, yCenter + x,
    Color.Black);
    }

  2. #2

    نقل قول: راهنمایی برای برنامه رسم دایره

    سلام.
    PictureBox خودش یه کنترله که وظیفه خاص خودش رو داره. شما بصرف کشیدن یک (یا چند) نقطه و دایره که نباید از یه PictureBox به این شکل استفاده کنید. فرم شما، در واقع Device Context شماست. هر چی دوست دارید میتونید روی فرم بکشید و نیازی به قرار دادن یک PictureBox روی صفحه و اینطور کنترلهای عجیب و غریب نیست!

    در هر حال، شما دارید توی Bitmap ای که new کرده اید، نقاط مورد نظر رو می کشید. یه جایی باید به PictureBox بگید که Source اش، این bitmap هست... این کارو کنید، PictureBox شکل مورد نظر رو بهتون نشون میده! (البته باید تغییراتی بنیادی در ساختار کد بدید، مثلا دیگه به OnPaint نیازی نیست و ...)

    موفق باشید.

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

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