中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

北京手機(jī)網(wǎng)站建設(shè)公司新聞?lì)^條免費(fèi)下載安裝

北京手機(jī)網(wǎng)站建設(shè)公司,新聞?lì)^條免費(fèi)下載安裝,圖片手機(jī)網(wǎng)站建設(shè),公司網(wǎng)站銷(xiāo)售平臺(tái)建設(shè)費(fèi)分錄?博客主頁(yè)何曾參靜謐的博客📌文章專(zhuān)欄「QT」QT5程序設(shè)計(jì)📚全部專(zhuān)欄「VS」Visual Studio「C/C」C/C程序設(shè)計(jì)「UG/NX」BlockUI集合「Win」Windows程序設(shè)計(jì)「DSA」數(shù)據(jù)結(jié)構(gòu)與算法「UG/NX」NX二次開(kāi)發(fā)「QT」QT5程序設(shè)計(jì)「File」數(shù)據(jù)文件格式「PK」Parasolid…

在這里插入圖片描述

?博客主頁(yè)
何曾參靜謐的博客
📌文章專(zhuān)欄
「QT」QT5程序設(shè)計(jì)
📚全部專(zhuān)欄
「VS」Visual Studio「C/C++」C/C++程序設(shè)計(jì)「UG/NX」BlockUI集合
「Win」Windows程序設(shè)計(jì)「DSA」數(shù)據(jù)結(jié)構(gòu)與算法「UG/NX」NX二次開(kāi)發(fā)
「QT」QT5程序設(shè)計(jì)「File」數(shù)據(jù)文件格式「PK」Parasolid函數(shù)說(shuō)明
「Math」探秘?cái)?shù)學(xué)世界

目錄

    • QLine類(lèi)詳解
      • 一、引言
      • 二、使用范圍
      • 三、類(lèi)的頭文件
      • 四、類(lèi)的構(gòu)造介紹
      • 五、共有函數(shù)介紹
      • 六、Static函數(shù)介紹
      • 七、運(yùn)算符重載
      • 八、詳細(xì)代碼舉例

QLine類(lèi)詳解

一、引言

QLine是Qt框架中的一個(gè)核心類(lèi),用于表示二維平面上的直線段。與QLineF不同,QLine使用整數(shù)坐標(biāo)(QPoint)來(lái)表示起點(diǎn)和終點(diǎn),這使得它在處理像素級(jí)精度的圖形繪制和界面布局時(shí)更加高效。QLine類(lèi)提供了豐富的功能,包括直線長(zhǎng)度的計(jì)算、直線的平移、判斷點(diǎn)與直線的關(guān)系等,是Qt圖形編程和界面設(shè)計(jì)中的基礎(chǔ)工具之一。
官方文檔:https://doc.qt.io/qt-5/qline.html

二、使用范圍

QLine類(lèi)廣泛應(yīng)用于Qt的圖形界面編程中,特別是在需要精確繪制直線、計(jì)算直線長(zhǎng)度、進(jìn)行直線變換、判斷點(diǎn)與直線關(guān)系等場(chǎng)景中。由于QLine使用整數(shù)坐標(biāo),因此它非常適合于處理像素級(jí)的圖形操作,如繪制網(wǎng)格線、邊框、分割線等。

三、類(lèi)的頭文件

要使用QLine類(lèi),需要包含其頭文件<QLine>。這個(gè)頭文件定義了QLine類(lèi)的所有成員和函數(shù),使得開(kāi)發(fā)者可以在自己的Qt應(yīng)用程序中使用該類(lèi)。

#include <QLine>

四、類(lèi)的構(gòu)造介紹

QLine類(lèi)提供了多種構(gòu)造函數(shù),允許以不同的方式創(chuàng)建QLine對(duì)象:

  1. 默認(rèn)構(gòu)造函數(shù):創(chuàng)建一個(gè)未初始化的QLine對(duì)象。
QLine();
  1. 參數(shù)化構(gòu)造函數(shù):使用兩個(gè)QPoint對(duì)象或四個(gè)整數(shù)坐標(biāo)(x1, y1, x2, y2)作為起點(diǎn)和終點(diǎn)來(lái)創(chuàng)建QLine對(duì)象。
QLine(int x1, int y1, int x2, int y2);
QLine(const QPoint &p1, const QPoint &p2);
  1. 從QLineF轉(zhuǎn)換的構(gòu)造函數(shù):雖然QLineF使用浮點(diǎn)數(shù)坐標(biāo),但QLine類(lèi)提供了從QLineF到QLine的轉(zhuǎn)換構(gòu)造函數(shù),允許將QLineF對(duì)象轉(zhuǎn)換為QLine對(duì)象(可能會(huì)丟失精度)。
QLine(const QLineF &linef);

五、共有函數(shù)介紹

QLine類(lèi)提供了豐富的共有函數(shù),用于獲取直線的屬性、進(jìn)行幾何運(yùn)算等。以下是一些常用的共有函數(shù):

  • QPoint p1() const:返回直線的起點(diǎn)。
  • QPoint p2() const:返回直線的終點(diǎn)。
  • void setP1(const QPoint &p1):設(shè)置直線的起點(diǎn)。
  • void setP2(const QPoint &p2):設(shè)置直線的終點(diǎn)。
  • int length() const:返回直線的長(zhǎng)度(整數(shù))。
  • int dx() const:返回終點(diǎn)的x坐標(biāo)與起點(diǎn)的x坐標(biāo)之差。
  • int dy() const:返回終點(diǎn)的y坐標(biāo)與起點(diǎn)的y坐標(biāo)之差。
  • QLine translated(int dx, int dy) const:返回沿向量(dx, dy)平移后的直線。
  • QPoint pointAt(int t) const:返回參數(shù)化直線上的點(diǎn),其中t是介于0和直線長(zhǎng)度之間的整數(shù),表示從起點(diǎn)到終點(diǎn)的距離。但需要注意的是,這個(gè)函數(shù)的行為可能與預(yù)期不同,因?yàn)樗苯踊陂L(zhǎng)度進(jìn)行插值,而不是基于比例。在實(shí)際使用中,可能需要使用其他方法來(lái)獲取特定比例的點(diǎn)。

注意pointAt函數(shù)的行為在QLine中可能不是直觀的,因?yàn)樗陂L(zhǎng)度進(jìn)行插值,而不是基于比例。如果你需要基于比例獲取點(diǎn),你可能需要手動(dòng)計(jì)算或使用QLineF類(lèi)。

六、Static函數(shù)介紹

QLine類(lèi)提供了一些靜態(tài)函數(shù),用于執(zhí)行與QLine對(duì)象相關(guān)的通用操作。這些函數(shù)不需要?jiǎng)?chuàng)建QLine對(duì)象就可以直接使用。以下是一些常用的靜態(tài)函數(shù):作者:CSND@何曾參靜 謐

  • static int fromPolar(int length, int angle, int *x, int *y):根據(jù)極坐標(biāo)(長(zhǎng)度和角度)計(jì)算直角坐標(biāo)(x, y)。這個(gè)函數(shù)將結(jié)果存儲(chǔ)在提供的指針中,并返回計(jì)算出的x坐標(biāo)(盡管返回值可能不是必需的,因?yàn)檫@是一個(gè)靜態(tài)函數(shù),并且它已經(jīng)通過(guò)指針修改了x和y的值)。

七、運(yùn)算符重載

QLine類(lèi)重載了多個(gè)運(yùn)算符,以便進(jìn)行直線之間的比較和算術(shù)運(yùn)算。以下是一些重載的運(yùn)算符:

  • bool operator==(const QLine &line) const:判斷兩條直線是否相等(基于起點(diǎn)和終點(diǎn)的坐標(biāo))。
  • bool operator!=(const QLine &line) const:判斷兩條直線是否不相等。

八、詳細(xì)代碼舉例

以下是一個(gè)使用QLine類(lèi)的詳細(xì)代碼示例,展示了如何創(chuàng)建QLine對(duì)象、獲取直線的屬性、進(jìn)行幾何運(yùn)算以及判斷點(diǎn)與直線的關(guān)系。

#include <QCoreApplication>
#include <QLine>
#include <QPoint>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 創(chuàng)建QLine對(duì)象QLine line(QPoint(10, 20), QPoint(40, 60));// 獲取直線的屬性QPoint start = line.p1();QPoint end = line.p2();int length = line.length();int dx = line.dx();int dy = line.dy();qDebug() << "Start Point:" << start;qDebug() << "End Point:" << end;qDebug() << "Length:" << length;qDebug() << "Dx:" << dx;qDebug() << "Dy:" << dy;// 進(jìn)行幾何運(yùn)算QLine translatedLine = line.translated(10, -10);qDebug() << "Translated Line (Start, End):" << translatedLine.p1() << "," << translatedLine.p2();// 判斷點(diǎn)與直線的關(guān)系(此處示例為點(diǎn)是否在直線上,但QLine沒(méi)有直接提供此功能,需自行計(jì)算)// 我們可以計(jì)算點(diǎn)到直線兩端點(diǎn)的距離之和,如果等于直線的長(zhǎng)度,則點(diǎn)在直線上(考慮整數(shù)坐標(biāo)的精度問(wèn)題)QPoint testPoint(25, 40); // 這個(gè)點(diǎn)實(shí)際上在直線上(考慮整數(shù)坐標(biāo))int distanceToStart = QPoint(line.p1().x() - testPoint.x(), line.p1().y() - testPoint.y()).manhattanLength();int distanceToEnd = QPoint(line.p2().x() - testPoint.x(), line.p2().y() - testPoint.y()).manhattanLength();if (distanceToStart + distanceToEnd == length) {qDebug() << "Test Point is on the line.";} else {qDebug() << "Test Point is not on the line.";}// 注意:上述判斷方法存在精度問(wèn)題,因?yàn)閷?duì)于非整數(shù)坐標(biāo)的點(diǎn),這種方法可能會(huì)失敗。// 在實(shí)際應(yīng)用中,可能需要使用更精確的方法來(lái)判斷點(diǎn)是否在直線上,比如計(jì)算點(diǎn)到直線的垂直距離。// 但由于QLine使用整數(shù)坐標(biāo),這種精確計(jì)算通常不是必需的。return a.exec();
}

作者:CSND@何曾參靜謐
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)QLine對(duì)象line,并獲取了它的起點(diǎn)、終點(diǎn)、長(zhǎng)度以及x和y方向的差值。然后,我們進(jìn)行了平移運(yùn)算,得到了一個(gè)新的QLine對(duì)象translatedLine。此外,我們還嘗試判斷一個(gè)測(cè)試點(diǎn)是否在直線上(通過(guò)計(jì)算點(diǎn)到直線兩端點(diǎn)的曼哈頓距離之和是否等于直線的長(zhǎng)度來(lái)進(jìn)行近似判斷)。需要注意的是,由于QLine使用整數(shù)坐標(biāo),因此這種方法在大多數(shù)情況下是有效的,但在處理非整數(shù)坐標(biāo)時(shí)可能會(huì)失敗。在實(shí)際應(yīng)用中,如果需要更精確的判斷,可能需要使用其他方法或考慮使用QLineF類(lèi)。


在這里插入圖片描述

http://m.risenshineclean.com/news/63287.html

相關(guān)文章:

  • 適合友情鏈接的網(wǎng)站市場(chǎng)營(yíng)銷(xiāo)策劃方案書(shū)
  • 佛山新網(wǎng)站建設(shè)seo網(wǎng)站優(yōu)化專(zhuān)員
  • 機(jī)器ip后面加個(gè)端口做網(wǎng)站農(nóng)大南路網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣優(yōu)化
  • 成都那家網(wǎng)站制作公司好微信投放廣告多少錢(qián)
  • 大學(xué)生做那個(gè)視頻網(wǎng)站財(cái)經(jīng)新聞最新消息
  • 合肥網(wǎng)站制作廣東東莞今日最新消息
  • 怎么一個(gè)網(wǎng)站做的競(jìng)價(jià)網(wǎng)站權(quán)重一般有幾個(gè)等級(jí)
  • 政府網(wǎng)站登錄界面模板網(wǎng)絡(luò)廣告營(yíng)銷(xiāo)經(jīng)典案例
  • 做二手的網(wǎng)站都有哪些互聯(lián)網(wǎng)推廣軟件
  • 鞍山市做網(wǎng)站公司軟件開(kāi)發(fā)培訓(xùn)中心
  • 做網(wǎng)站php和asp哪個(gè)好100%上熱門(mén)文案
  • wordpress 4.0百度seo搜索引擎優(yōu)化方案
  • 德宏網(wǎng)站建設(shè)公司項(xiàng)目?jī)?yōu)化seo
  • 如何進(jìn)行網(wǎng)站維護(hù)軟文大全800字
  • 重復(fù)打開(kāi)同一個(gè)網(wǎng)站怎么做今天特大軍事新聞
  • 保定做網(wǎng)站建設(shè)門(mén)戶(hù)網(wǎng)站軟文
  • 網(wǎng)站制作需要學(xué)多久百度宣傳推廣費(fèi)用
  • 德清網(wǎng)站公司建設(shè)創(chuàng)建自己的網(wǎng)頁(yè)
  • java軟件開(kāi)發(fā)流程長(zhǎng)沙有實(shí)力seo優(yōu)化
  • 谷歌推廣網(wǎng)站怎么做b站推廣怎么買(mǎi)
  • 外貿(mào)公司 如何做公司網(wǎng)站怎么才能創(chuàng)建一個(gè)網(wǎng)站
  • 國(guó)內(nèi)網(wǎng)站建設(shè)哪家好高級(jí)搜索
  • wordpress懸浮小工具的插件seo文章排名優(yōu)化
  • 可以做軟件的網(wǎng)站有哪些內(nèi)容百度詞條優(yōu)化
  • hishop網(wǎng)站頁(yè)面排名優(yōu)化
  • 電商網(wǎng)站建設(shè)方案模板下載安卓系統(tǒng)優(yōu)化app
  • wordpress站內(nèi)計(jì)費(fèi)搜索品牌推廣與傳播怎么寫(xiě)
  • 泗涇做網(wǎng)站成都網(wǎng)站建設(shè)公司
  • 日照網(wǎng)站建建設(shè)百度搜索推廣技巧
  • 鄭州門(mén)戶(hù)網(wǎng)站建設(shè)手機(jī)系統(tǒng)流暢神器