• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            class painter : public QWidget
            {
                Q_OBJECT
            public:
                painter(QWidget 
            *parent = 0, Qt::WFlags flags = 0);
                
            ~painter();
            private:
                
            void paintEvent(QPaintEvent* e);
                
            void clcPos(int x,int y,int r);
                
            void renderCircle(QPainter& painter,int x,int y,int r);
                
            void renderLine(int p1,int p2);
                
            void mousePressEvent(QMouseEvent*);
                
            void mouseReleaseEvent(QMouseEvent*);
                
            int  length(int x1,int y1,int x2,int y2);
                
            int  min(int x,int y,int& m);
            private:
                
            bool mMousePress;
                QVector
            <QPair<int,int> > mPosList;
            };

            #endif

            painter::painter(QWidget* parent,Qt::WFlags flags):
            QWidget(parent,flags)
            {
                setGeometry(100,100,640,480);
                setBackgroundRole(QPalette::Base);
                setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
                mMousePress = false;
            }

            painter::~painter()
            {
            }

            void painter::paintEvent(QPaintEvent* e)
            {
                mPosList.clear();

                int w = width();
                int h = height();

                float p = 3.14159265f;

                QPainter painter(this);
                painter.setRenderHint(QPainter::Antialiasing,true);

                for(int i=0;i<5;i++)
                {
                    float delta = p*0.4*i - .5*p;
                    
                    float cos = cosf(delta)*148;
                    float sin = sinf(delta)*148;
                    int x = w/2 + cos;
                    int y = h/2 + sin;
                    mPosList.push_back(QPair<int,int>(x,y));
                }

                renderLine(0,2);
                renderLine(1,3);
                renderLine(2,4);
                renderLine(3,0);
                renderLine(4,1);

                for(int i=0;i<5;i++)
                {
                    QPair<int,int> pos = mPosList[i];
                    renderCircle(painter,pos.first,pos.second,48);
                }
            }

            void painter::clcPos(int x,int y,int r)
            {
                mPosList.push_back(QPair<int,int>(x,y));
            }

            void painter::renderCircle(QPainter& painter0,int x,int y,int r)
            {
                QPainter painter(this);
                painter.setRenderHint(QPainter::Antialiasing,true);

                painter.setPen(QPen(Qt::blue,2,Qt::SolidLine));  
                painter.setBrush(QBrush(Qt::green,Qt::SolidPattern));
                painter.drawRoundRect(x-r/2,y-r/2,r,r,99,99);
            }

            void painter::mousePressEvent(QMouseEvent* e)
            {
                if(e->button() == Qt::LeftButton)
                {
                    mMousePress = true;
                    int x = e->x();
                    int y = e->y();
                    const int off2 = 48*48;
                    
                    int m = 9999;
                    int offset = min(x,y,m);
                    if(m < 36*36)
                        std::cout<<"here:"<<offset<<std::endl;
                }
            }

            int painter::min(int x,int y,int& m)
            {
                int offset = 0;
                for(int i=0;i<5;i++)
                {
                    QPair<int,int> pos(mPosList[i]);
                    int len = length(x,y,pos.first,pos.second);
                    if(len < m)
                    {
                        m = len;
                        offset = i;
                    }
                }
                return offset;
            }

            void painter::mouseReleaseEvent(QMouseEvent* e)
            {
                mMousePress = false;
            }

            int painter::length(int x1,int y1,int x2,int y2)
            {
                return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
            }

            void painter::renderLine(int p1,int p2)
            {
                QPair<int,int> pos1 = mPosList[p1];
                QPair<int,int> pos2 = mPosList[p2];

                float k = pos2.second - pos1.second;
                k /= (float)(pos2.first - pos1.first);
                std::cout<<k<<std::endl;

                QPainter painter(this);
                painter.setRenderHint(QPainter::Antialiasing,true);
                painter.setPen(QPen(Qt::blue,2,Qt::DotLine));
                painter.drawLine(pos1.first,pos1.second,pos2.first,pos2.second);
            }

            posted on 2014-12-11 22:07 ccsdu2009 閱讀(2080) 評論(0)  編輯 收藏 引用 所屬分類: QT編程
             
            午夜精品久久影院蜜桃| 久久香蕉国产线看观看99| 久久久久久久综合狠狠综合| 亚洲午夜久久久| 精品久久人妻av中文字幕| 久久精品国产色蜜蜜麻豆| 久久国产劲爆AV内射—百度| 国产精品亚洲美女久久久| 伊人久久综合无码成人网| 国産精品久久久久久久| 色婷婷久久综合中文久久蜜桃av| 久久久久久国产精品美女 | 久久AV高清无码| 国产精品一区二区久久精品无码 | 久久青青草视频| 99久久婷婷国产一区二区| 亚洲va久久久噜噜噜久久男同 | 无码精品久久久天天影视| 香蕉久久影院| 久久久久人妻一区精品果冻| 精品久久久久久久久午夜福利| 香蕉久久久久久狠狠色| 国产一区二区三精品久久久无广告| 国产精品美女久久久| 久久99精品久久只有精品 | 国产精品免费久久久久久久久 | 久久综合给合久久狠狠狠97色69 | 色综合久久88色综合天天 | 无码8090精品久久一区| 伊人久久免费视频| 欧美综合天天夜夜久久| 色偷偷888欧美精品久久久| 色综合久久精品中文字幕首页| 欧美777精品久久久久网| 狠狠色丁香久久婷婷综| 国产午夜久久影院| 国产亚洲色婷婷久久99精品91| 久久久久噜噜噜亚洲熟女综合| 久久本道久久综合伊人| 欧美久久天天综合香蕉伊| 日本WV一本一道久久香蕉|