日韩性视频-久久久蜜桃-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 坐标系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一本色道久久综合精品婷婷 | av在线播放网址 | 久久久夜色精品 | 日日麻批免费视频播放 | 高清日韩av | 欧美区一区二区三 | 久久麻豆av| 日韩视频三区 | 婷婷激情小说 | 超碰人操| caopor在线| 色天天色综合 | free性护士vidos猛交 | 91精品国产一区二区三竹菊影视 | 亚洲少妇中文字幕 | 国产综合亚洲精品一区二 | 9i看片成人免费 | 日韩欧美在线免费观看 | 91久久精品日日躁夜夜躁欧美 | xxx毛片 | 韩国伦理中文字幕 | 亚洲欧美自拍视频 | 亚洲国产综合av | 爱爱三级视频 | 日韩免费福利视频 | 日本三区在线 | 神马午夜精品 | 亚洲日本天堂 | 亚洲一区二区在线电影 | 让男按摩师摸好爽视频 | 青青草手机视频在线观看 | 精品黄色片| 美国黄色一级大片 | 亚洲男女啪啪 | 成人看片网站 | 亚洲在线免费观看视频 | 精品国产影院 | 五月婷婷在线观看 | a天堂资源 | 天天躁狠狠躁 | 人人狠狠 | 99久久婷婷国产综合精品草原 | 亚洲精品鲁一鲁一区二区三区 | 国产成人精品一区二区三区免费 | 日本一区视频在线 | 午夜黄色小视频 | 超碰p | 亚洲精品99久久久久中文字幕 | 久久橹 | 精品国产免费无码久久久 | 五月婷婷在线观看视频 | 在线看的av| 男女羞羞的视频 | 黄色日比视频 | 亚洲最大激情网 | 邻居少妇张开腿让我爽了在线观看 | 日日夜夜骑| 一区二区精品国产 | 欧美日韩卡一卡二 | 国产成人啪精品 | 97影院手机版 | 国产一卡二卡三卡 | 黄色片视频免费在线观看 | 奇米影 | 青娱乐国产精品 | 久久久久久久久久久国产 | 777精品| 欧美综合一区二区 | 中文在线а√天堂官网 | 初尝人妻少妇中文字幕 | 手机看片1024日韩 | 五月av| 一级成人av | 国产情侣第一页 | 顶级毛茸茸aaahd极品 | 污视频免费在线观看网站 | 国产伦精品一区三区精东 | 欧美视频第一区 | 一级黄色欧美 | 熟女人妻一区二区三区免费看 | 欧美特黄一级大片 | 韩国日本欧美一区 | 日韩在线毛片 | 97碰碰碰| 丁香花五月 | 96日本xxxxxⅹxxx17| 日本一区高清 | 青青草视频 | 亚洲图区欧美 | 欧美三日本三级少妇三级99观看视频 | 午夜视频色 | 与亲女洗澡时伦了毛片 | 亚洲2022国产成人精品无码区 | 欧美日韩在线播放 | 国产精品 欧美 日韩 | 亚洲最大福利视频网 | 动漫av网站 | 伊人网伊人网 | 久久精品爱|