QGraphicsScene的坐标系
时间: 2024-05-10 21:12:57 浏览: 18
QGraphicsScene是一个图形场景,用于显示2D图形项。它的坐标系是左上角为原点,向右为x轴正方向,向下为y轴正方向,单位为像素。可以通过设置场景的sceneRect属性来限制场景的大小,如果图形项在场景矩形之外,则不会被绘制出来。同时,每个图形项也有自己的坐标系,可以通过mapToScene()和mapFromScene()函数将其转换为场景坐标系或者自己的本地坐标系。
相关问题
qgraphicsview坐标系
QGraphicsView的坐标系是以左上角为原点,x轴正方向向右,y轴正方向向下。[3] 这意味着视图坐标中的点(0,0)是指视图的左上角。在QGraphicsView中,所有的鼠标事件最开始都是以视图坐标表示。 而QGraphicsScene类的坐标系以中心为原点,即(0,0)点位于场景的中心。 而对于图元来说,它们使用自己的本地坐标系,通常以图元的中心为原点。 总之,QGraphicsView的坐标系是相对于视图本身,而QGraphicsScene和图元的坐标系是相对于场景和图元本身的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [qt graphics view 坐标系](https://blog.csdn.net/wowocpp/article/details/111909001)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
qt 十字坐标系
在 Qt 中,可以使用 QGraphicsView 和 QGraphicsScene 组件来实现十字坐标系。具体步骤如下:
1. 创建 QGraphicsView 和 QGraphicsScene 组件,并将 QGraphicsScene 组件设置为 QGraphicsView 的场景。
2. 在 QGraphicsScene 中添加一个 QGraphicsLineItem,用于绘制 X 轴。
3. 在 QGraphicsScene 中添加另一个 QGraphicsLineItem,用于绘制 Y 轴。
4. 在 QGraphicsView 中设置视图的大小和视图的中心点。
5. 在 QGraphicsView 中开启滚轮缩放功能,以便用户可以缩放视图。
下面是示例代码,可以实现一个简单的十字坐标系:
```
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsLineItem>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建 QGraphicsView 和 QGraphicsScene 组件
QGraphicsView view;
QGraphicsScene scene;
view.setScene(&scene);
// 创建 X 轴线条
QGraphicsLineItem *xLine = new QGraphicsLineItem(-10000, 0, 10000, 0);
xLine->setPen(QPen(Qt::red));
scene.addItem(xLine);
// 创建 Y 轴线条
QGraphicsLineItem *yLine = new QGraphicsLineItem(0, -10000, 0, 10000);
yLine->setPen(QPen(Qt::red));
scene.addItem(yLine);
// 设置视图大小和视图中心点
view.setFixedSize(600, 600);
view.setSceneRect(-300, -300, 600, 600);
view.centerOn(0, 0);
// 开启滚轮缩放功能
view.setDragMode(QGraphicsView::ScrollHandDrag);
view.setRenderHint(QPainter::Antialiasing);
view.setRenderHint(QPainter::SmoothPixmapTransform);
view.setRenderHint(QPainter::HighQualityAntialiasing);
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
view.setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing, true);
view.setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
view.setOptimizationFlag(QGraphicsView::DontAdjustForDrag, true);
view.setOptimizationFlag(QGraphicsView::DontAdjustViewportSize, true);
// 显示视图
view.show();
return a.exec();
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)