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

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


person Saeid Yazdani    schedule 05.04.2011    source источник
comment
Рисовать пустой круг?   -  person Dan Byström    schedule 05.04.2011


Ответы (3)


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

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);
person Thomas Levesque    schedule 05.04.2011

из ума:

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

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

person user492238    schedule 05.04.2011

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

person Davide Piras    schedule 05.04.2011