Qwt源碼解讀之QwtInterval 類

來源:互聯網
上載者:User

   QwtInterval 類表徵一個區間,這個區間由兩個double類型的上限值max和下限值min所表示。它可以表示[min, max],[min, max),(min, max]和(min, max) 等4種情況。

程式碼分析:

class QWT_EXPORT QwtInterval{public:    /*!      Flag indicating if a border is included or excluded       \sa setBorderFlags(), borderFlags()    */    enum BorderFlag    {        //! Min/Max values are inside the interval        IncludeBorders = 0x00,        //! Min value is not included in the interval        ExcludeMinimum = 0x01,        //! Max value is not included in the interval        ExcludeMaximum = 0x02,        //! Min/Max values are not included in the interval        ExcludeBorders = ExcludeMinimum | ExcludeMaximum    };    //! Border flags    typedef QFlags<BorderFlag> BorderFlags; // 是否包含左右邊界的標誌變數    QwtInterval();    QwtInterval( double minValue, double maxValue,        BorderFlags = IncludeBorders );    void setInterval( double minValue, double maxValue,        BorderFlags = IncludeBorders );    QwtInterval normalized() const;     QwtInterval inverted() const; //  反轉一個區間    QwtInterval limited( double minValue, double maxValue ) const; // 同 setMinValue(minValue) & setMaxValue(maxValue)    bool operator==( const QwtInterval & ) const;    bool operator!=( const QwtInterval & ) const;    void setBorderFlags( BorderFlags );    BorderFlags borderFlags() const;    double minValue() const;    double maxValue() const;    double width() const; // 返回區間的寬度    void setMinValue( double );    void setMaxValue( double );    bool contains( double value ) const;    bool intersects( const QwtInterval & ) const; // 測試兩個區間是否有交集!    QwtInterval intersect( const QwtInterval & ) const; // 取兩個區間的交集    QwtInterval unite( const QwtInterval & ) const; // 取兩個區間的並集    QwtInterval operator|( const QwtInterval & ) const;    QwtInterval operator&( const QwtInterval & ) const;    QwtInterval &operator|=( const QwtInterval & );    QwtInterval &operator&=( const QwtInterval & );    QwtInterval extend( double value ) const; //  擴大一個區間    QwtInterval operator|( double ) const;    QwtInterval &operator|=( double );    bool isValid() const;    bool isNull() const;    void invalidate(); // 使無效(即初始化至初始狀態),一個好的命名樣本,如果是我們寫代碼,很可能寫成initial();     QwtInterval symmetrize( double value ) const; // 對稱化,使value成為該區間的中心點private:    double d_minValue;    double d_maxValue;    BorderFlags d_borderFlags;};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.