首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QGraphicsScene,如何根据中心点放置项目

QGraphicsScene,如何根据中心点放置项目
EN

Stack Overflow用户
提问于 2016-11-10 15:37:47
回答 1查看 198关注 0票数 1

我有一个QGraphicsScene,我已经确定了我的中心点在哪里,但我现在需要弄清楚如何根据这些信息在场景中放置我的物品。

我有两个数据,我需要处理:范围和方位。

距离很明显是离中心点(或我的位置)有多远,方位是中心点的方向,0是北,180是南,等等。

例如,如果我需要在范围: 20,轴承: 90,项目将是20 (单位)直接在中心点的右边。目前,将项目与此数据放在一起是基于场景左上角的0,0。

这一切都需要能够与缩放状态的QGraphicsScene以及。

我完全迷上了这个转变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-10 20:20:08

不知道如何通过从坐标系到坐标系的转换得到适当的偏移量,我设法找到了一个解决方案。希望这不会被认为是一项太过的黑客工作。

首先,我需要从左上角(0,0)抵消,并且知道我的场景是360,360,这很容易。

我不是一个数学家,我不确定能不能得到角度,但经过一些研究后,我发现我所得到的信息正是我所需要的,我需要得到一个向量。

下面是我编写的帮助我在QGraphicsScene中生成项的方法。

代码语言:javascript
运行
复制
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;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40531438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档