• <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 閱讀(2077) 評論(0)  編輯 收藏 引用 所屬分類: QT編程
             
            色88久久久久高潮综合影院| 亚洲va久久久噜噜噜久久天堂| 亚洲精品高清国产一线久久| 久久丝袜精品中文字幕| 久久人妻无码中文字幕| 久久777国产线看观看精品| 久久国产精品免费一区| 婷婷综合久久中文字幕蜜桃三电影 | 97精品伊人久久久大香线蕉| 伊人久久大香线蕉亚洲五月天| 久久久久无码精品国产不卡| 亚洲综合久久夜AV | 99热都是精品久久久久久| 7777久久久国产精品消防器材| 亚洲国产精品无码久久SM| 久久被窝电影亚洲爽爽爽| 久久伊人五月天论坛| 日本久久久久亚洲中字幕| 国产精品永久久久久久久久久| 久久久久国产精品嫩草影院| 狠狠人妻久久久久久综合| 性做久久久久久久| 欧美成a人片免费看久久| 久久国产精品一国产精品金尊| 久久亚洲天堂| 国产午夜精品理论片久久| 久久人人妻人人爽人人爽| 一级A毛片免费观看久久精品| 久久综合九色综合精品| 99久久伊人精品综合观看| 伊人久久综合成人网| 综合久久精品色| 久久综合亚洲色HEZYO国产| 亚洲欧美日韩精品久久| 国产精品VIDEOSSEX久久发布| 久久久无码精品亚洲日韩按摩| 久久国产亚洲精品| 漂亮人妻被中出中文字幕久久| 久久无码中文字幕东京热| 尹人香蕉久久99天天拍| 久久久受www免费人成|