• <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編程
             
            久久综合噜噜激激的五月天| 久久棈精品久久久久久噜噜| 99热成人精品热久久669| 国产福利电影一区二区三区久久久久成人精品综合 | 久久国产成人午夜aⅴ影院| 精品久久久久久无码专区| 午夜不卡久久精品无码免费| 综合久久国产九一剧情麻豆| 一本一本久久A久久综合精品| 一级做a爰片久久毛片看看| 人妻无码αv中文字幕久久琪琪布| 久久久久99精品成人片| 午夜精品久久久久久| 香蕉久久久久久狠狠色| 国产精品美女久久久久久2018| 久久99热国产这有精品| 怡红院日本一道日本久久 | 久久久久久久久无码精品亚洲日韩| 久久精品男人影院| 久久久久亚洲av综合波多野结衣| 国产一区二区三区久久| 国产精品99久久久精品无码| 国内精品久久久久久久影视麻豆| 国内精品久久久人妻中文字幕 | 狠狠色婷婷久久综合频道日韩 | 久久久久亚洲AV成人网| 久久丫精品国产亚洲av不卡| 欧美一级久久久久久久大片| 久久精品国产精品青草app| 久久国产免费观看精品3| 亚洲国产美女精品久久久久∴ | 久久亚洲中文字幕精品一区| 久久久精品国产Sm最大网站| 伊人热人久久中文字幕| 狠狠久久亚洲欧美专区| 国产精品视频久久| 久久99热国产这有精品| 麻豆精品久久久一区二区| 四虎国产精品免费久久久| 久久精品国内一区二区三区| 婷婷综合久久狠狠色99h|