www.467cc.cn-无人在线观看高清电影电视剧,无码少妇一区二区三区免费,午夜福利视频,欧美爆乳乱妇高清免费888

<sup id="a8eos"><samp id="a8eos"></samp></sup>
  • <strike id="a8eos"></strike>
  • <strike id="a8eos"><menu id="a8eos"></menu></strike>
  • <fieldset id="a8eos"><input id="a8eos"></input></fieldset>
  • <fieldset id="a8eos"><input id="a8eos"></input></fieldset>
    產(chǎn)品展廳收藏該商鋪

    您好 登錄 注冊

    當(dāng)前位置:
    東莞市宇匠數(shù)控設(shè)備有限公司>技術(shù)文章>研究和實現(xiàn)Visual C++的動態(tài)控制

    技術(shù)文章

    研究和實現(xiàn)Visual C++的動態(tài)控制

    閱讀:177          發(fā)布時間:2020-8-12


    動點坐標(biāo)XY坐標(biāo)對t的積分, YX坐標(biāo)對t的積分。因此, 由ΔX的疊加產(chǎn)生的溢出去進(jìn)給Y 由ΔY的疊加產(chǎn)生的溢出去進(jìn)給X。圓弧積分器的原理圖如圖2所示[1]

    求積前, Xi Yi中預(yù)置圓弧的起點坐標(biāo)X0 Y0 并作左移規(guī)格化處理。疊加過程中, 每進(jìn)給一步動點坐標(biāo)應(yīng)作相應(yīng)的修改, 即: Xi±1XiYi±1Yi。修改中是作加l還是減1的運算應(yīng)當(dāng)視圓弧所處的象限而定。


    具體方法是, 設(shè)置JVx JVy為積分函數(shù)寄存器, JRx JRy為余數(shù)寄存器。在起點時, JVxJvy分別寄存起始坐標(biāo)X0 Y0,對于第一象限逆圓來說, 在插補過程中, JRy每溢出一個Δy脈沖, JVx應(yīng)該加1 JRx每溢出一個Δx脈沖, JVy應(yīng)減1。對于其他各種情況的DDA法圓弧插補, JVxJvy是加1還是減1 取決于動點坐標(biāo)所在象限及圓弧走向[2]

    對不同象限坐標(biāo)修正見表1



    2.2 程序?qū)崿F(xiàn)

    給類CCircleView增加數(shù)據(jù)成員:

    CPoint endPoint; //起點 (點1

    CPoint startPoint; //終點 (點2

    int m[20000][2]; //存儲動點坐標(biāo)的二維數(shù)組

    給類CCircleView增加成員函數(shù):

    void change(int x, int *a); //為二維數(shù)組賦值

    change()成員函數(shù)中設(shè)置部分變量:

    int sumx; //x坐標(biāo)累加器

    int sumy; //y坐標(biāo)累加器

    int q; //累加器容量

    int flag; //是否溢出標(biāo)志

    int xi,yi; //x,y坐標(biāo)值

    以下給出部分程序代碼。

    DDA法實現(xiàn)圓的插補—確定各動點的坐標(biāo), 并存儲在

    二維數(shù)組m[][]中:

    void CCircleView::change(int x, int *a)

    { int sumx, sumy, q, j, flag;

    int xi,yi;

    sumx=0; sumy=0; j=1;

    xi=x; yi=0;

    q=4096;

    for(j=1; j<=q; j++)

    { m[j][0]=0; m[j][1]=0; }

    j=1;

    while(xi>0)

    { sumx+=xi; sumy+=yi; flag=0;

    if(sumx>=q)

    { yi++; m[j][1]=yi; m[j][0]=xi; sumx-=q; flag=1; }

    if(sumy>=q)

    { xi--; m[j][0]=xi; m[j][1]=yi; sumy-=q; flag=1; }

    if(flag==1) j++;

    }

    *a=j-1;

    }

    鼠標(biāo)左鍵拖動后松開觸發(fā)OnLButtonUp成員函數(shù)代碼[3]

    void CCircleView::OnLButtonUp(UINT nFlags, CPoint point)

    { blsDown=false;

    CClientDC dc(this);

    dc.Ellipse(&rect);

    int center_x=(startPoint.x+endPoint.x)/2, center_y=(startPoint.

    y+endPoint.y)/2;

    double r=sqrt(abs((endPoint.x-startPoint.x)*

    (endPoint.x-startPoint.x))+abs((endPoint.y-startPoint.y)*

    (endPoint.y-startPoint.y)))/2;

    int x0=center_x+0, y0=center_y+0;

    int *num,b,i; num=&b;

    change(r,num);

    m[0][0]=r; m[0][1]=0; CClientDC dc1(this);

    CPen pen(PS_SOLID,1,RGB(0,255,255));

    dc1.SelectObject(&pen);

    dc1.MoveTo(x0+r,y0) ;

    //第一象限

    for(i=1;i<=*num;i++)

    { dc1.LineTo(x0+m[i][0],y0+m[i][1]);

    for(long j=0; j<=999999; j++);

    }

    //第二象限

    for(i=*num; i>=0; i--)

    { dc1.LineTo(x0-m[i][0],y0+m[i][1]);

    for(long j=0; j<=999999; j++);

    }

    //第三象限

    for(i=0; i<=*num; i++)

    { dc1.LineTo(x0-m[i][0],y0-m[i][1]);

    for(long j=0; j<=999999; j++);

    }

    //第四象限

    for(i=*num; i>=0; i--)

    { dc1.LineTo(x0+m[i][0],y0-m[i][1]);

    for(long j=0; j<=999999; j++);

    }

    CView::OnLButtonUp(nFlags, point);

    }

    2.3 系統(tǒng)運行的結(jié)果

    系統(tǒng)采用Visual C++6.0可視化開發(fā)工具編程, 實現(xiàn)了直線和圓弧插補算法。圓弧插補算法編譯運行后的仿真結(jié)果如圖4所示。

    本文由 伯特利數(shù)控文章 整理發(fā)表,文章來自網(wǎng)絡(luò)僅參考學(xué)習(xí),本站不承擔(dān)任何法律責(zé)任。

    /bethel/news/


    收藏該商鋪

    登錄 后再收藏

    提示

    您的留言已提交成功!我們將在第一時間回復(fù)您~

    對比框

    產(chǎn)品對比 二維碼 意見反饋

    掃一掃訪問手機商鋪
    在線留言
    Av网址免费观看网站| 久久9久99久久96| 国产一线二线三线女| 成全免费高清观看在线电视剧大全| 国产在线精品一区二区| 成人无码H免费动漫在线观看| 国产a一级无码毛片一区二区三区| 最好看免费观看视频大全| 国产无线卡一卡二区别在哪| 无码国产模特AV免费私拍|