我有一个QGraphicsScene,我已经确定了我的中心点在哪里,但我现在需要弄清楚如何根据这些信息在场景中放置我的物品。
我有两个数据,我需要处理:范围和方位。
距离很明显是离中心点(或我的位置)有多远,方位是中心点的方向,0是北,180是南,等等。
例如,如果我需要在范围: 20,轴承: 90,项目将是20 (单位)直接在中心点的右边。目前,将项目与此数据放在一起是基于场景左上角的0,0。
这一切都需要能够与缩放状态的QGraphicsScene以及。
我完全迷上了这个转变。
发布于 2016-11-10 20:20:08
不知道如何通过从坐标系到坐标系的转换得到适当的偏移量,我设法找到了一个解决方案。希望这不会被认为是一项太过的黑客工作。
首先,我需要从左上角(0,0)抵消,并且知道我的场景是360,360,这很容易。
我不是一个数学家,我不确定能不能得到角度,但经过一些研究后,我发现我所得到的信息正是我所需要的,我需要得到一个向量。
下面是我编写的帮助我在QGraphicsScene中生成项的方法。
QPointF Mainwindow::pointLocation(double bearing, double range){
int offset = 90; //used to offset Cartesian system
double centerX = 180;//push my center location out to halfway point
double centerY = 180;
double newX = centerX + qCos(qDegreesToRadians(bearing - offset)) * range;
double newY = centerY + qSin(qDegreesToRadians(bearing - offset)) * range;
QPointF newPoint = QPointF(newX, newY);
return newPoint;
}
https://stackoverflow.com/questions/40531438
复制相似问题