mahtab_m
شنبه 08 اسفند 1388, 19:14 عصر
سلام. من برنامه زیر رو برای رسم رایره نوشتم. اما برنامه جواب نمیده.
لطفا راهنمایی کنید بگید مشکل از کجاست
bool ready = false;
int xCenter, yCenter, radius;
int xr, yr;
Bitmap bt = new Bitmap(1000, 1000);
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
ready = true;
xCenter = e.X;
yCenter = e.Y;
}
private void 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();
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
ready = false;
}
private void 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);
}
لطفا راهنمایی کنید بگید مشکل از کجاست
bool ready = false;
int xCenter, yCenter, radius;
int xr, yr;
Bitmap bt = new Bitmap(1000, 1000);
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
ready = true;
xCenter = e.X;
yCenter = e.Y;
}
private void 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();
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
ready = false;
}
private void 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);
}