简体   繁体   中英

how i can draw small circle inside big one on c#?

i draw a circle and i know the radius of it and center point so how i can draw a small circle inside it and on the center that's is the code of the big circle

g.DrawEllipse(
    yellowPen,
    (float)(Properties.Settings.Default.CenterXBall - rad), 
    (float)(Properties.Settings.Default.CenterYBall - rad),
    (float)(rad * 2), 
    (float)(rad * 2));

//CenterXBall  is the X of center big Circle
//CenterYBall   is the X of center big Circle
//rad is radius 

i want to draw small circle on the center of this circle on code

You just need to offset the position using the Radius size.
The Offset is PointF(CenterX - Radius1, CenterY - Radius2) .
The Size of the drawing rectangle will then be 2 * Radius in each dimension.

Here I assume the inner circle is half the size of the outer one.
The center point is set to PointF(120, 120) .

The drawing is performed in the Paint event of a PictureBox.

e.Graphics.SmoothingMode = SmoothingMode.HighQuality;

float Radius1a = 100F;
float Radius1b = 100F;
float Radius2a = Radius1a / 2;
float Radius2b = Radius1b / 2;
PointF CentrePoint = new PointF(120, 120);

PointF Position1 = new PointF(CentrePoint.X - Radius1a, CentrePoint.Y - Radius1b);
PointF Position2 = new PointF(CentrePoint.X - Radius2a, CentrePoint.Y - Radius2b);

RectangleF Rectangle1 = new RectangleF(Position1, new SizeF(Radius1a * 2, Radius1b * 2));
RectangleF Rectangle2 = new RectangleF(Position2, new SizeF(Radius2a * 2, Radius2b * 2));

e.Graphics.DrawEllipse(new Pen(Brushes.Black, 2), Rectangle1);
e.Graphics.DrawEllipse(new Pen(Brushes.Red, 2), Rectangle2);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM