Рисование круга с использованием PointF в качестве центра c # - PullRequest
1 голос
/ 05 апреля 2011

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

Ответы [ 3 ]

4 голосов
/ 05 апреля 2011

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

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);
1 голос
/ 05 апреля 2011

с ума с ума:

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

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

0 голосов
/ 05 апреля 2011

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

...