日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Graphics View 坐标系统

發布時間:2025/3/21 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Graphics View 坐标系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Graphics View基于笛卡爾坐標系。item在場景中的位置與幾何形狀通過x,y坐標表示。當使用未經變形的視圖來觀察場景時,場景中的一個單位等于屏幕上的一個像素。在Graphics View中有三個有效的坐標系統:Item坐標系,場景坐標系,視圖坐標系。為了簡化你的實現,Graphics View提供了方便的函數,允許三個坐標系之間相互映射。
當渲染時,Graphics View的場景坐標對應于QPainter的邏輯坐標,視圖坐標與設備坐標相同。

Item坐標
Items位于它們自己的坐標系中。它的坐標都以點(0,0)為中心點,這也是所有變換的中心點。在item坐標系中的幾何圖元,經常被稱為item點,item線,item矩形。當創建一個定制的item,item坐標是所需要考慮的。QGraphicsSceneQGraphicsView可以為你執行所有轉換,這使得實現定制的item變得容易。舉例來說,假如你收到鼠標按或是拖進入事件,事件的位置以item坐標的形式給出。QGraphicsItem::contain()虛函數,當某個點的位置在你的item范圍內時,返回true,否則返回false。這個點參數使用item坐標,相似地,item的包圍矩形與形狀也使用item坐標。
Item位置指的是item的中心點在它父親的坐標系中的坐標。以這種思想來看,場景指的就是那些祖先最少的item的“父親”。最上級的Item位置就是在場景中的位置。
子坐標與父坐標之間是相關的,假如孩子未經變換,子坐標與父坐標之間的差值等于在父坐標系下,父item與子item之間的距離。例如,假如一個未經變換的子item位置與其父item的中心重合,那么這兩個item的坐標系統完全相同。如果孩子的位置是(10,0),那么孩子坐標系中的(0,10)點,對應于父坐標系中的(10,10)點。
因為item的位置與變換是相對于父item的,子item的坐標不會被父親的變換影響,盡管父item的變換隱含地對子item做了變換。在上面的例子中,即使父item旋轉,縮放,子item的(0,10)點依然對應于父item的(10,10)點。然而,相對于場景來講,子item會遵循父item的變換。假如父item被縮放(2X,2X),子item的位置在場景中的坐標是(20,0),它的(10,0)點則與場景中的(40,0)對應 。除了QGraphicsItem::pos(),QGraphicsItem的函數以Item坐標工作,如一個item's包圍矩形總是以item坐標的形式給出。

場景坐標
場景坐標系統描述了每個最頂級item的位置,也是從視圖向場景投遞場景事件的基礎。場景中的每個item有場景位置與包圍矩形(QGraphicsItem::scenePos(),QGraphicsItem::sceneBoundingRect()), 另外,它有自己本地item位置與包圍矩形。場景位置描述了item在場景坐標下的位置,它的場景包圍矩形則用于QGraphicsScene決定場景中哪塊區域發生了變化。場景中的變化通過QGraphicsScene::changed()信號來通知,它的參數是場景矩形列表。

視圖坐標
視圖坐標是widget的坐標,視圖坐標中每個單位對應一個像素。這種坐標的特殊之處在于它是相對于widget或是視口的,不會被所觀察的場景所影響。QGraphicsView的視口的左上角總是(0,0),右下角總是(視口寬,視口高)。所有的鼠標事件與拖拽事件,最初以視圖坐標表示,就應該把這些坐標映射到場景坐標以便與item交互。

坐標映射
經常,處理場景中item時,在場景與item之間,item與item之間,視圖與場景之間進行坐標映射,形狀映射是非常有用的。舉例來講,當你在QGraphicsView的視口中點擊鼠標時,你應該通過調用QGraphicsView::mapToScence()QGraphicsScene::itemAt()來獲知光標下是場景中的哪個item。假如你想獲知一個item位于視口中的什么位置,你應該先在item上調用QGraphicsItem::mapToScene(),然后調用QGraphicsView::mapFromScene()。最后,假如你想在一個視圖橢圓中有哪些items,你應該把QPainterPath傳遞到mapToScene(),然后再把映射后的路徑傳遞到QGraphicsScene::items()。
你可以調用QGraphicsItem::mapToScene()QGraphicsItem::mapFromScene()在item與場景之間進行坐標與形狀的映射。也可以在item與其父item之間通過QGraphicsItem::mapToParent()QGraphicsItem::mapFromItem()進行映射。所有映射函數可以包括點,矩形,多邊形,路徑。視圖與場景之間的映射也與此類似。對于從視圖與item之間的映射,你應該首先映射到場景,然后再從場景向item進行映射。

轉載于:https://blog.51cto.com/seanyxie/1375953

總結

以上是生活随笔為你收集整理的Graphics View 坐标系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美另类国产 | 午夜在线视频免费观看 | 国产精品国产精品国产专区不片 | 国产 中文 字幕 日韩 在线 | 国产精品丝袜在线观看 | 亚洲欧美第一视频 | 98在线视频| 日日骚av一区二区 | 国产熟女一区二区三区四区 | 夜夜摸夜夜爽 | 啪啪综合网 | 欧美a∨亚洲欧美亚洲 | 午夜精品一区二区三区在线 | 美妇湿透娇羞紧窄迎合 | 久久亚洲av午夜福利精品一区 | 欧美日韩操 | 国产精品一区二区小说 | av先锋影音 | 午夜精品久久99蜜桃的功能介绍 | 在线观看亚洲视频 | 日日撸视频| 91玉足脚交嫩脚丫在线播放 | 日少妇的逼| 亚洲视频图片小说 | 57pao成人国产永久免费视频 | 越南av| 天天躁日日躁狠狠躁免费麻豆 | 67194国产| 久久久精品亚洲 | 成人午夜一区 | 日本在线免费观看视频 | 午夜剧场免费观看 | av片子在线观看 | 亚洲毛片在线看 | 黄网站免费在线 | 性做久久久久久久久久 | 性欧美丰满熟妇xxxx性仙踪林 | 成人久久久精品乱码一区二区三区 | 久久高潮视频 | 成年人黄色一级片 | 国产成人免费在线视频 | 欧美成人69| 国产一级网站 | 一区精品在线观看 | 欧美插插视频 | a级一片 | 无码 人妻 在线 视频 | 色国产视频| 亚洲色图18p | 极品少妇xxxx | 日韩免费av一区二区 | 91av在线视频播放 | av毛片在线看| 国产日韩视频在线观看 | 色图综合 | 久热只有精品 | 亚洲精品一区二区在线观看 | 夜色在线视频 | 婷婷综合在线观看 | av永久免费在线观看 | aaaa黄色片| 欧美不卡一二三 | 日韩草逼| 免费美女视频网站 | 免费在线观看网址入口 | 日本精品一区二区在线观看 | 自拍偷拍欧美亚洲 | 亚洲色图丝袜 | sesese99| 日本性爱动漫 | 国产精品调教 | 色婷婷久 | 成人免费做受小说 | 欧美综合精品 | 少妇精品无码一区二区 | 素人女裸体 | 亚洲免费视频网站 | 雪白的扔子视频大全在线观看 | 黄色美女一级片 | 激情av一区 | 欧美成人黄色 | 在线看黄色网址 | 亚洲性欧美 | youjizz亚洲| 91av导航| 粉嫩小箩莉奶水四溅在线观看 | 色妞色视频一区二区三区四区 | 欧美在线不卡 | 色婷婷亚洲综合 | 欧美巨乳在线 | 国产精品一区二区三区四区在线观看 | 传媒av在线 | 春意影院福利社 | 日本波多野结衣在线 | 自拍视频在线观看 | 久久中文娱乐网 | 亚洲天堂手机在线观看 | 99久在线精品99re8热 | 欧美国产成人精品一区二区三区 |