qpainterpath画圆
时间: 2023-08-05 11:07:38 浏览: 60
使用Qt中的QPainterPath类可以方便地绘制圆形。具体实现方式如下:
1. 创建QPainterPath对象:
```cpp
QPainterPath path;
```
2. 添加圆形路径:
```cpp
path.addEllipse(centerX - radius, centerY - radius, 2 * radius, 2 * radius);
```
其中,centerX和centerY是圆心的坐标,radius是圆的半径。
3. 绘制圆形:
```cpp
QPainter painter(this);
painter.drawPath(path);
```
完整的代码示例:
```cpp
void MyWidget::paintEvent(QPaintEvent *)
{
int centerX = width() / 2;
int centerY = height() / 2;
int radius = 50;
QPainterPath path;
path.addEllipse(centerX - radius, centerY - radius, 2 * radius, 2 * radius);
QPainter painter(this);
painter.drawPath(path);
}
```
以上代码会在窗口中心绘制一个半径为50的圆形。
相关问题
Android 画圆
在Android中,可以使用Paint和Canvas来画圆。下面是一个示例代码:
```java
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 创建画笔对象
Paint paint = new Paint();
paint.setColor(Color.BLUE); // 设置画笔颜色
// 在指定位置画圆
canvas.drawCircle(150, 150, 100, paint);
canvas.drawCircle(370, 150, 100, paint);
canvas.drawCircle(590, 150, 100, paint);
canvas.drawCircle(260, 250, 100, paint);
canvas.drawCircle(480, 250, 100, paint);
}
```
这段代码在`onDraw`方法中绘制了5个圆,分别位于不同的位置,并使用不同的颜色。通过创建画笔对象并设置颜色,然后调用`canvas.drawCircle`方法来绘制圆。
matplotlib画圆
以下是两种使用matplotlib画圆的例子:
1.使用Ellipse函数画圆
```python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse
delta = 45.0 # degrees
angles = np.arange(0, 360 + delta, delta)
ells = [Ellipse((1, 1), 4, 2, a) for a in angles]
fig, ax = plt.subplots(subplot_kw={'aspect': 'equal'})
for e in ells:
ax.add_artist(e)
e.set_clip_box(ax.bbox)
e.set_alpha(0.6)
e.set_facecolor(np.random.rand(3))
plt.xlim(-2, 6)
plt.ylim(-1, 4)
plt.show()
```
2.使用sin和cos函数画圆
```python
import matplotlib.pyplot as plt
import numpy as np
x, y = 0, 0
r = 1
a_x = np.arange(0, 2*np.pi, 0.01)
a = x + r*np.cos(a_x)
b = y + r*np.sin(a_x)
plt.plot(a, b, color='r', linestyle='-')
plt.plot(a, -b, color='r', linestyle='-')
plt.axis('equal')
plt.show()
```