QGraphicsEllipseItem根据圆心画圆C++
时间: 2023-07-11 19:03:41 浏览: 62
可以使用QGraphicsEllipseItem类的构造函数或setRect()函数来绘制圆。具体步骤如下:
1. 创建一个QGraphicsEllipseItem对象:
```cpp
QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem();
```
2. 设置圆心和半径:
```cpp
QPointF center(x, y); // 圆心坐标
qreal radius = r; // 半径
```
3. 计算左上角和右下角的坐标:
```cpp
QPointF topLeft(center.x() - radius, center.y() - radius);
QPointF bottomRight(center.x() + radius, center.y() + radius);
```
4. 设置矩形区域:
```cpp
QRectF rect(topLeft, bottomRight);
ellipse->setRect(rect);
```
5. 将圆添加到场景中:
```cpp
scene->addItem(ellipse);
```
完整代码:
```cpp
QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem();
QPointF center(x, y); // 圆心坐标
qreal radius = r; // 半径
QPointF topLeft(center.x() - radius, center.y() - radius);
QPointF bottomRight(center.x() + radius, center.y() + radius);
QRectF rect(topLeft, bottomRight);
ellipse->setRect(rect);
scene->addItem(ellipse);
```