超碰在线91,国产第1页,国产精品99,最近中文字幕av

<video id="z2k50"><ins id="z2k50"></ins></video><small id="z2k50"><pre id="z2k50"><samp id="z2k50"></samp></pre></small>

    1. <video id="z2k50"><ins id="z2k50"></ins></video>

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

        發(fā)布時間:2024-05-28
        動點(diǎn)坐標(biāo)x是y坐標(biāo)對t的積分, 而y是x坐標(biāo)對t的積分。因此, 由δx的疊加產(chǎn)生的溢出去進(jìn)給y; 由δy的疊加產(chǎn)生的溢出去進(jìn)給x。圓弧積分器的原理圖如圖2所示[1]。
        求積前, xi、 yi中預(yù)置圓弧的起點(diǎn)坐標(biāo)x0、 y0, 并作左移規(guī)格化處理。疊加過程中, 每進(jìn)給一步動點(diǎn)坐標(biāo)應(yīng)作相應(yīng)的修改, 即: xi±1→xi或yi±1→yi。修改中是作加l還是減1的運(yùn)算應(yīng)當(dāng)視圓弧所處的象限而定。
        具體方法是, 設(shè)置jvx、 jvy為積分函數(shù)寄存器, jrx、 jry為余數(shù)寄存器。在起點(diǎn)時, jvx和jvy分別寄存起始坐標(biāo)x0、 y0,對于第一象限逆圓來說, 在插補(bǔ)過程中, jry每溢出一個δy脈沖, jvx應(yīng)該加1; jrx每溢出一個δx脈沖, jvy應(yīng)減1。對于其他各種情況的dda法圓弧插補(bǔ), jvx和jvy是加1還是減1, 取決于動點(diǎn)坐標(biāo)所在象限及圓弧走向[2]。
        對不同象限坐標(biāo)修正見表1。
        2.2 程序?qū)崿F(xiàn)
        給類ccircleview增加數(shù)據(jù)成員:
        cpoint endpoint; //起點(diǎn) (點(diǎn)1)
        cpoint startpoint; //終點(diǎn) (點(diǎn)2)
        int m[20000][2]; //存儲動點(diǎn)坐標(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法實(shí)現(xiàn)圓的插補(bǔ)—確定各動點(diǎ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)運(yùn)行的結(jié)果
        系統(tǒng)采用visual c++6.0可視化開發(fā)工具編程, 實(shí)現(xiàn)了直線和圓弧插補(bǔ)算法。圓弧插補(bǔ)算法編譯運(yùn)行后的仿真結(jié)果如圖4所示。
        本文由 伯特利數(shù)控文章 整理發(fā)表,文章來自網(wǎng)絡(luò)僅參考學(xué)習(xí),本站不承擔(dān)任何法律責(zé)任。
        /bethel/news/
        上一個:環(huán)剝:環(huán)剝又稱枷樹,開甲
        下一個:鋪地柏

        數(shù)控車床開機(jī)后FANUC0TD系統(tǒng)顯示ALM401報(bào)警
        電腦u盤啟動重裝系統(tǒng)教程(電腦u盤重裝系統(tǒng)怎么操作步驟)
        水泵安裝使用安全須知
        win10磁盤分盤怎么弄,win10磁盤分區(qū)怎么合理
        windows 11 右鍵菜單(windows11右鍵菜單管理)
        配置高點(diǎn)的筆記本電腦(高配筆記本電腦配置清單表)
        江蘇有哪家辦理二級承裝資質(zhì)
        果蔬蔬菜清洗機(jī)采用氣泡和噴淋兩種清洗機(jī)方式
        楊樹楊灰斑病防治方法
        紅王子錦帶花繁殖要點(diǎn)