PDA

View Full Version : سوال: ایجاد شکل لوزی با دایره تو در تو



madanchi11
سه شنبه 24 اردیبهشت 1392, 15:47 عصر
سلام

میخواستم با کد زیر چطور بتونم شکل زیر بوجود میاد


http://p30up.ir/up/3ocmjr8nq8t0oirxgvlk.jpg




private void button1_Click(object sender, EventArgs e)
{
int i, x, y, r = 50;
Graphics g1 = this.CreateGraphics();
Color c1 = Color.Black;
Pen p1 = new Pen(c1, 2);
g1.DrawEllipse(p1, 150, 150, r, r);
for (i = 0; i <= 300; i += 60)
{
x = 150 + (int)(r * Math.Cos(i * Math.PI / 180));
y = 150 - (int)(r * Math.Sin(i * Math.PI / 180));
g1.DrawArc(p1, x, y, r, r, i, i + 360);

}

manij_mhm
سه شنبه 24 اردیبهشت 1392, 18:40 عصر
تقریبا کدش شبیه این میشه فقط کافیه یکم مختصات و شعاع دایره های دوردوم رو تغییر بدید


int j,i, x, y, r = 50;
Graphics g1 = this.CreateGraphics();
Color c1 = Color.Black;
Pen p1 = new Pen(c1, 2);
g1.DrawEllipse(p1, 150, 150, r, r);
for (i = 0; i <= 300; i += 60)
{
x = 150 + (int)(r * Math.Cos(i * Math.PI / 180));
y = 150 - (int)(r * Math.Sin(i * Math.PI / 180));
g1.DrawArc(p1, x, y, r, r, i, i + 360);
// if(i==0)

}
for (j = 0; j <= 330; j += 30)
{
x = 150 + (int)(r * Math.Cos(j * Math.PI / 180));
y = 150 - (int)(r * Math.Sin(j * Math.PI / 180));
g1.DrawArc(p1, x*2-150, y*2-150, r, r, j, j + 360);
if (j == 90)
{
for (int k = j-50; k <= j+50; k += 50)
{
x = 150 + (int)(r * Math.Cos(k * Math.PI / 180));
y = 150- (int)(r * Math.Sin(k * Math.PI / 180));
g1.DrawArc(p1, x , y -95 , r-5, r-5, k, k + 360);

}
}
if (j == 270)
{
for (int k = j - 50; k <= j + 50; k += 50)
{
x = 150 + (int)(r * Math.Cos(k * Math.PI / 180));
y = 150 - (int)(r * Math.Sin(k * Math.PI / 180));
g1.DrawArc(p1, x, y + 105, r - 7, r -7, k, k + 360);

}
}

}