Рисование круга с использованием PointF в качестве его центра c#

#c# #bitmap #draw #picturebox #geometry

#c# #растровое изображение #рисовать #picturebox #геометрия

Вопрос:

Я искал это, но ничего не смог найти. Идея в том, что у меня есть точка, подобная (52.66, 60.11), и я хочу нарисовать пустой круг с этой точкой в качестве его центра. Я пытался сделать это с помощью DrawEllipse, но его не волнует центр! это просто прямоугольник…Я думаю, следует использовать какую-то формулу преобразования?

Комментарии:

1. Рисование пустого круга?

Ответ №1:

Вы можете вычислить координаты прямоугольника по центру и радиусу:

 float x = center.X - radius;
float y = center.Y - radius;
float width = 2 * radius;
float height = 2 * radius;
graphics.DrawEllipse(pen, x, y, width, height);
  

Ответ №2:

из головы:

 RectangleF circle2Rect(Point midPoint, float radius) {
   return new RectangleF(midPoint.X-radius,
                        midPoint.Y-radius,
                        radius*2,
                        radius*2); 
}
  

(Это не тестировалось)
Используйте это для преобразования параметра окружности в прямоугольник для рисования.

Ответ №3:

если вы рисуете эллипс с одинаковой высотой и шириной, вы получаете круг, если вам нужно знать координаты верхней левой и нижней правой точек квадрата, в котором нарисован ваш круг, это довольно банально, зная среднюю точку (center).