求助怎样连续画圆弧。


圆弧插补常用1/8 圆弧来画圆。  因为步进电机是连续运动的,我不能象PC机中一样采用对称的方法画出整个圆 从 0--45 度与从 45--90 度两段圆弧的变化趋势(X,Y变化的快慢)正好相反,我不能继续用上面的公式画出其它段圆弧 。求助怎样连续画圆弧。

我也来说两句 查看全部回复

最新回复

  • wanghong (2008-8-31 15:12:24)

    /************************************************/
    void hua_yuan(uchar Ox,uchar Oy,uchar Rx)
    {
        unsigned int xx,rr,xt,yt,rs;
            yt = Rx;
            rr = Rx * Rx + 1;   //补偿 1 修正方形
            rs =(yt + (yt >> 1)) >>1;  //0.75)分开1/8圆弧来画
            for(xt = 0; xt <= rs; xt++)
            {
                xx = xt * xt;
                    while((yt*yt) > (rr-xx))
                    {
                        yt--;
                    }
                    col = Ox + xt;  //第一象限
                    row = Oy - yt;
                    dian(row,col);
                    col = Ox - xt;  //第二象限
                    dian(row,col);
                    row = Oy + yt;  //第三象限
                    dian(row,col);
                    col = Ox + xt;  //第四象限
                    dian(row,col);
                    //***************45度镜象画另一半***************
            col = Ox + yt;  //第/一象限
                    row = Oy - xt;
                    dian(row,col);
                    col = Ox - yt;  //第/二象限
                    dian(row,col);
                    row = Oy + xt;  //第/三象限
                    dian(row,col);
                    col = Ox + yt;  //第/四象限
                    dian(row,col);

            }
    }
  • shunter (2008-8-31 20:24:04)

    高手。很受益。
  • wanghong (2008-9-05 14:30:58)

    没有人能帮啊
  • wanghong (2008-9-06 08:16:28)

    来错地方了!