【发布时间】:2017-04-17 10:12:22
【问题描述】:
【问题讨论】:
-
@dtech 我很害怕。这不是问题,但我希望在 Qt 中有一个聪明的内置解决方案。真可惜。
【问题讨论】:
不,没有。 I am afraid you will have to use... math!
实际上,你可以不这样做。特别是围绕一个圆圈扫过,有一种简单的方法可以通过改变画家来做到这一点。您最初将画家变换到圆的中心,并在圆的 12 点钟位置绘制第一个点。这意味着将其绘制到负 y 空间中。然后您只需将画家旋转360 / numOfObjects 度并再次绘制相同的圆圈。
这里的关键是将painter转换到中心并绘制对象偏移量,否则自己计算位置和角度会更复杂。角度在这里不起作用,因为您正在绘制点,但是如果您绘制点以外的东西,它将产生巨大的差异。这样,您可以通过围绕原点旋转画笔轻松扫过圆圈。
用伪代码表示:
draw big circle
move painter to big circle center
degree = 360 / numOfObjects
while numOfObjects--
draw dot at 12 o'clock
rotate painter by degree
【讨论】:
QGraphicsScene() 来完成吗?