• <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 閱讀(2072) 評論(0)  編輯 收藏 引用 所屬分類: QT編程
             
            国产高潮国产高潮久久久| 久久伊人精品青青草原高清| 久久久久亚洲AV综合波多野结衣| 久久精品国产第一区二区| 狠狠色丁香久久婷婷综合蜜芽五月 | 久久青青草原亚洲av无码app| 久久婷婷五月综合97色一本一本| 99国产精品久久| 综合久久精品色| 亚洲国产精品一区二区久久| AV无码久久久久不卡蜜桃| 国产精品成人99久久久久| 久久久久久综合网天天| 久久久久久一区国产精品| 72种姿势欧美久久久久大黄蕉| 亚洲婷婷国产精品电影人久久| 好久久免费视频高清| 久久亚洲AV成人无码软件| 久久www免费人成看国产片| 久久久久久久久久久久中文字幕 | 久久妇女高潮几次MBA| 国产午夜精品理论片久久 | 国产综合精品久久亚洲| 国内精品久久久久久99蜜桃 | 99精品久久久久久久婷婷| 久久996热精品xxxx| 日韩av无码久久精品免费| 久久精品国产日本波多野结衣| 久久本道久久综合伊人| 国产精品日韩深夜福利久久| 人妻少妇久久中文字幕| 精品多毛少妇人妻AV免费久久| 香蕉久久永久视频| 亚洲国产高清精品线久久| 色婷婷久久综合中文久久一本 | 久久精品无码午夜福利理论片| 热99RE久久精品这里都是精品免费| 久久久久亚洲av成人无码电影| 91久久精品国产成人久久| 久久久99精品成人片中文字幕| 国产成人无码精品久久久免费|