亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? i.c

?? nubers曲線的計算方法,在DSP6711DSK板上調試成功.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include<stdio.h>
#include<math.h>
#include "c6211dsk.h"
#include <c6x.h>
void muan();
void parati(double *t,double u,int *iut);
void XYvalue(double t,int i,double *xup1,double *yup1,double *down1,double *x1,double *y1);
void distance( double *Lp,double x1,double x2,double y1,double y2);
void distentire(double *L,double L1,double Lp);
void XYdiff(int i,double t,double xup1,double yup1,double down1,double *Dx,double *Dy,double *Ddx,double *Ddy);                
void curvature(double *kc,double dx1,double dy1,double ddx1,double ddy1);
void curvature_radius(double *rc,double kc);
void Feedrate(double rc,double *V);
void chord_error(double *hr,double rc,double Vad);
void para_ui(double *u,double u1,double Vad,double dx1,double dy1,double ddx1,double ddy1);
void Last_seg_judge(int seg_num,int *seg_j);
void seg_limit_value(int i);
void S_th7style(int i);
void S_th6style(int i);
void S_th5style(int i);
void S_th4style(int i);
void S_th3style(int i);
void S_th2style(int i);
void S_th1style(int i);
void simpletime();

double W[] = {1,2,2,1,1,1,1,1,1,2,2,1};
double U[] = {0,0,0,0,0.0629,0.1801,0.2998,0.4398,0.5602,0.7002,0.8199,0.9371,1.0000,1.0000,1.0000,1.0000};
double X[] = {0 ,0,6,4,1,5,11,15,12,10,16,16};
double Y[] = {1,0,0,2,11,16,16,11,2,0,0,1};
double T=0.001,hm=0.0005,J=30000,Am=2450,F=12*1000/60;/*插補參數*/
double V[3][3],M[4][4],B[20][12];

int K=3;/*curve degree*/ 
int W_num = (sizeof(W)/sizeof(double));       /*曲線權重個數=控制頂點數目*/

struct points
 {
   double time;
   double curvature;
   double para_ui;   
   double acc;
   double jerk;
   double x;
   double y;
  }point[2];

struct DIFF
   {
    double xup;
    double yup;
    double down; 
    double dx;
    double dy;
    double ddx;
    double ddy;
    }DIFF;
    
struct adaptivevalue
 {

   double para_ti;
   int i_ut;
   double chord_error;
   double curvature_radius;
   double dist_step;
   double dist_entire;    
   double feedrate;
   double Fmax;
   double seg_entire;
  }adap;

struct segment
 {
   double feedratemax;
   double feedrateend; 
   double feedratestr;
   double seg_ui;    
   double seg_L;
  }seg[10];
    
struct seg_limit
  {
    double Lr1;
    double Lr2;
    double Lr3;
    double Lr4;
    double Lr5;
    double Lr6;
   }seg_lim;

struct accdectime
  {
   double Tstr;
   double Tend;
   double Tc;
  }adtime;

struct simple_num
  {
   int n1;
   int n2;
   int n3;
   int n;
   }simp;


void main(void)
  {
   

    double k_seg=2*hm/(hm*hm+F*F*(T*0.5)*(T*0.5));
    double temporary_curvature;
    int s_n_f;
    int i=0,j=0;
    point[1].para_ui=0.0;
    adap.dist_step=0.0;
    adap.Fmax=0.0;
    adap.seg_entire=0.0;
    seg[0].feedratestr=0.0;
    adap.dist_entire=0.0;
    point[0].curvature=0.0;

	muan();

  do
    {
     parati(&adap.para_ti,point[1].para_ui,&adap.i_ut);
     point[0].x=point[1].x;
     point[0].y=point[1].y;
     XYvalue(adap.para_ti,adap.i_ut,&DIFF.xup,&DIFF.yup,&DIFF.down,&point[1].x,&point[1].y);
     XYdiff(adap.i_ut,adap.para_ti,DIFF.xup,DIFF.yup,DIFF.down,&DIFF.dx,&DIFF.dy,&DIFF.ddx,&DIFF.ddy);
     temporary_curvature=point[0].curvature;
     point[0].curvature=point[1].curvature;
     curvature(&point[1].curvature,DIFF.dx,DIFF.dy,DIFF.ddx,DIFF.ddy);
     /*判斷分段點以及記錄各段需要的參數*/
     if ((point[0].curvature>k_seg)&&(temporary_curvature<point[0].curvature)&&(point[0].curvature>point[1].curvature))
        {
          seg[j].feedrateend=adap.feedrate;
          seg[j].seg_ui=point[0].para_ui;
          seg[j].seg_L=adap.dist_entire-adap.seg_entire;
          adap.seg_entire=adap.dist_entire;
          seg[j].feedratemax=adap.Fmax;
          adap.Fmax=0.0;
          /*printf("ui=%f;fend=%f ;fstr=%f ;s_L=%f ;fmax=%f\n",seg[j].seg_ui,seg[j].feedrateend,seg[j].feedratestr,seg[j].seg_L,seg[j].feedratemax); */    
          j++;
          seg[j].feedratestr=seg[j-1].feedrateend;
        }     
     curvature_radius(&adap.curvature_radius,point[1].curvature);
     Feedrate(adap.curvature_radius,&adap.feedrate);
     /*找出最大速度*/
     if (adap.Fmax<adap.feedrate)
       {
         adap.Fmax=adap.feedrate;
        }
     chord_error(&adap.chord_error,adap.curvature_radius,adap.feedrate);
     if(i>=1)
      {
        distance(&adap.dist_step,point[0].x,point[1].x,point[0].y,point[1].y);
        distentire(&adap.dist_entire, adap.dist_entire, adap.dist_step);
      }
     printf("ui=%f;\n",point[1].para_ui);
     printf("adap.dist_step=%f ;alldistance=%f ;ui=%f ;\n",adap.dist_step,adap.dist_entire,point[1].para_ui);  
     point[0].para_ui=point[1].para_ui;
     para_ui(&point[1].para_ui,point[0].para_ui,adap.feedrate,DIFF.dx,DIFF.dy,DIFF.ddx,DIFF.ddy);
    
      /*判斷結束點并計算各相應參數*/
     if (point[1].para_ui>=1)
      {
       i++;
       point[1].para_ui=1.0;
       point[1].curvature=point[1].curvature;
       adap.curvature_radius=adap.curvature_radius;
       adap.chord_error=adap.chord_error;
       point[0].x=point[1].x;
       point[0].y=point[1].y;
       point[1].x=X[W_num-1];
       point[1].y=Y[W_num-1];
       distance(&adap.dist_step,point[0].x,point[1].x,point[0].y,point[1].y);
       distentire(&adap.dist_entire, adap.dist_entire, adap.dist_step); 
       seg[j].seg_L=adap.dist_entire-adap.seg_entire;
       seg[j].feedrateend=0;
       seg[j].feedratemax=adap.Fmax;
       seg[j].seg_ui=1.0;  
       printf("ui=%f;fend=%f ;fstr=%f ;s_L=%f ;fmax=%f\n",seg[j].seg_ui,seg[j].feedrateend,seg[j].feedratestr,seg[j].seg_L,seg[j].feedratemax);     
       j++;   
       printf("ui=%f;\n",point[1].para_ui);
       printf("adap.dist_step=%f ;alldistance=%f ;ui=%f ;\n",adap.dist_step,adap.dist_entire,point[1].para_ui);                  
       }
     i++;
	 }while(point[1].para_ui<1.0);
	 printf("j=%d; k_seg=%f\n",j,k_seg);
	 printf("x0=%f ;y0=%f ;x1=%f ;y1=%f ",point[0].x,point[0].y,point[1].x,point[1].y);
	 Last_seg_judge(j,&s_n_f);
	 printf("s_n_f=%d\n",s_n_f);
	 
	 for (j=0;j<s_n_f;j++)
	 {
	  printf("fend=%f ;fstr=%f ;s_L=%f ;fmax=%f\n",seg[j].feedrateend,seg[j].feedratestr,seg[j].seg_L,seg[j].feedratemax);    
      seg_limit_value(j);
      S_th7style(j);
      S_th6style(j);
      S_th5style(j);
      S_th4style(j);
      S_th3style(j);
      S_th2style(j);
      S_th1style(j);
      simpletime();
      printf("ui=%f;fend=%f ;fstr=%f ;s_L=%f ;fmax=%f\n",seg[j].seg_ui,seg[j].feedrateend,seg[j].feedratestr,seg[j].seg_L,seg[j].feedratemax); 
      printf("Tstr=%f ;Tc=%f ;Tend=%f;\n",adtime.Tstr,adtime.Tc,adtime.Tend);
      printf("n1=%d ;n2=%d ;n3=%d;n=%d\n",simp.n1,simp.n2,simp.n3,simp.n);
      }
  
	while(1);
  }
 

 
 
/*預處理中矩陣形式系數求解*/ 
void muan()
{
    int ii,jj,l1,aa;
    for( ii=0;ii<(W_num-K);ii++)
    {
     jj=ii+K;
     V[0][0]=U[jj+1]-U[jj];
     V[0][1]=U[jj+2]-U[jj];
     V[0][2]=U[jj+3]-U[jj];
     V[1][0]=U[jj]-U[jj-1];
     V[1][1]=U[jj+1]-U[jj-1];
     V[1][2]=U[jj+2]-U[jj-1];
     V[2][2]=U[jj+1]-U[jj-2];
     V[2][0]=0;
     V[2][1]=0;
     M[0][0]=-(V[0][0]*V[0][0])/(V[1][1]*V[2][2]);
     M[0][3]=V[0][0]*V[0][0]/(V[0][1]*V[0][2]);
     M[1][2]=3*V[0][0]*V[0][0]/(V[1][2]*V[1][1]);
     M[2][2]=3*V[0][0]*V[1][0]/(V[1][1]*V[1][2]);
     M[3][2]=V[1][0]*V[1][0]/(V[1][1]*V[1][2]);
     M[0][2]=-(M[1][2]/3+M[0][3]+V[0][0]*V[0][0]/(V[0][1]*V[1][2]));
     M[0][1]=-(M[0][0]+M[0][2]+M[0][3]);
     M[1][0]=-3*M[0][0];
     M[2][0]=3*M[0][0];
     M[3][0]=-M[0][0];
     M[1][1]=3*M[0][0]-M[1][2];
     M[2][1]=-3*M[0][0]-M[2][2];
     M[3][1]=1+M[0][0]-M[3][2];
     M[1][3]=0;
     M[2][3]=0;
     M[3][3]=0;
     for(l1=0;l1<4;l1++)
       {
        aa=K-l1;
        B[ii][l1]=M[aa][0]*W[jj-3]*X[jj-3]+M[aa][1]*W[jj-2]*X[jj-2]+M[aa][2]*W[jj-1]*X[jj-1]+M[aa][3]*W[jj]*X[jj];
        B[ii][l1+8]=M[aa][0]*W[jj-3]+M[aa][1]*W[jj-2]+M[aa][2]*W[jj-1]+M[aa][3]*W[jj];
        B[ii][l1+4]=M[aa][0]*W[jj-3]*Y[jj-3]+M[aa][1]*W[jj-2]*Y[jj-2]+M[aa][2]*W[jj-1]*Y[jj-1]+M[aa][3]*W[jj]*Y[jj];
       }	   	   
     }
     return;	 
 }
 
 
/*求u對應變量t,及U中的位置*/
void parati(double *t,
            double u,
            int *iut)
       {
         int i;
         for(i=0;i<(W_num-3);i++)
           {
             if(u>=U[i+3]&&u<U[i+4])
              {
                *t=(u-U[i+3])/(U[i+4]-U[i+3]);
                *iut=i;
                break;
               }
             }
         }

/*求曲線上點坐標*/
void XYvalue(double t,
             int i,
             double *xup1,
             double *yup1,
             double *down1,
             double *x1,
             double *y1)
            {
               *xup1=B[i][3]*t*t*t+B[i][2]*t*t+B[i][1]*t+B[i][0];
               *yup1=B[i][7]*t*t*t+B[i][6]*t*t+B[i][5]*t+B[i][4];
               *down1=B[i][11]*t*t*t+B[i][10]*t*t+B[i][9]*t+B[i][8];
               *x1 = (*xup1)/(*down1);
               *y1 = (*yup1)/(*down1);
             }


/*求每步插補步長*/
void distance( double *Lp,
               double x1,
               double x2,
               double y1,
               double y2)
            {
             *Lp=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
             }

/*求插補總長*/
void distentire(double *L,
                double L1,
                double Lp)
              {
                *L=L1+Lp;
               }

/*計算X,Y導數*/
void XYdiff(int i,
            double t,
            double xup1,
            double yup1,
            double down1,
            double *Dx,
            double *Dy,
            double *Ddx,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区电影在线播| 日韩一区二区精品在线观看| 国产一区二区精品久久| 日本午夜精品视频在线观看| 五月婷婷综合网| 日本三级亚洲精品| 激情图区综合网| 国产东北露脸精品视频| 国产99精品视频| 91在线国产福利| 91福利视频网站| 51精品国自产在线| 日韩免费一区二区三区在线播放| 日韩视频123| 国产日韩一级二级三级| 亚洲四区在线观看| 亚洲一区二区三区四区五区黄| 亚洲一线二线三线视频| 日本网站在线观看一区二区三区 | 亚洲国产精品天堂| 欧美日本高清视频在线观看| 色欧美片视频在线观看| 国产精品一区二区免费不卡| 久久99九九99精品| 久久精品国产999大香线蕉| 日韩一区欧美二区| 精品午夜久久福利影院 | 色久综合一二码| 色婷婷av一区二区三区之一色屋| 日本韩国欧美三级| 欧美另类videos死尸| 欧美一级视频精品观看| 久久色.com| 国产精品美女久久久久aⅴ| 亚洲人xxxx| 天天操天天干天天综合网| 久久99久久精品欧美| 国产丶欧美丶日本不卡视频| av动漫一区二区| 精品视频免费看| 精品久久久久av影院| 国产精品麻豆网站| 婷婷中文字幕一区三区| 美国av一区二区| 91女厕偷拍女厕偷拍高清| zzijzzij亚洲日本少妇熟睡| 91蝌蚪porny| 91精品婷婷国产综合久久竹菊| 久久综合久久综合久久| 一区二区三区在线播| 久久成人免费电影| 色乱码一区二区三区88| 日韩欧美一二三区| 中文字幕一区视频| 另类小说欧美激情| 一本一本大道香蕉久在线精品 | 国产不卡一区视频| 色婷婷av一区二区三区gif| 日韩午夜激情电影| 亚洲欧美激情视频在线观看一区二区三区| 中文字幕永久在线不卡| 美女性感视频久久| 国产精品一级片在线观看| 在线观看一区二区精品视频| 日韩精品中午字幕| 一级精品视频在线观看宜春院| 久久精品国产**网站演员| 日本高清不卡aⅴ免费网站| 久久久午夜电影| 天使萌一区二区三区免费观看| 高清不卡一区二区在线| 精品欧美一区二区久久| 亚洲国产一区视频| 91丨porny丨国产| 欧美激情资源网| 国产一区二区三区四区五区美女| 欧美日韩三级在线| 中文字幕中文在线不卡住| 毛片一区二区三区| 日韩免费一区二区| 久久精品噜噜噜成人88aⅴ| 欧美日韩五月天| 亚洲精品第1页| 91小视频在线免费看| 国产精品视频一区二区三区不卡| 狠狠色丁香九九婷婷综合五月| 5月丁香婷婷综合| 午夜欧美一区二区三区在线播放| 91麻豆swag| 亚洲日本一区二区| 972aa.com艺术欧美| 国产精品久久久久久久第一福利 | 久久精品国内一区二区三区| 91超碰这里只有精品国产| 亚洲成在人线在线播放| 欧美人xxxx| 麻豆91免费看| 欧美精品一区视频| 国产在线麻豆精品观看| 久久精品这里都是精品| 国产精品中文字幕一区二区三区| 日韩精品一区二区三区视频播放 | 狠狠久久亚洲欧美| 久久久蜜臀国产一区二区| 精品中文av资源站在线观看| 精品国产亚洲在线| 国产v日产∨综合v精品视频| 国产精品午夜久久| 99精品视频一区二区三区| 亚洲天堂精品视频| 欧美日韩精品一区二区三区| 日韩电影在线一区| 久久久久免费观看| 91麻豆免费看片| 天堂精品中文字幕在线| 欧美午夜精品久久久| 丝袜诱惑制服诱惑色一区在线观看| 欧美亚洲免费在线一区| 国产真实精品久久二三区| 国产精品第一页第二页第三页| 欧美性大战久久久久久久蜜臀| 琪琪久久久久日韩精品| 久久久久国产精品厨房| 日本精品一区二区三区高清 | 91理论电影在线观看| 丝袜美腿亚洲色图| 国产精品天天看| 欧美视频在线播放| 国产剧情av麻豆香蕉精品| 一区二区三区在线视频观看58 | 欧美96一区二区免费视频| 国产欧美一区二区精品仙草咪 | 亚洲在线中文字幕| 精品久久人人做人人爽| av成人动漫在线观看| 婷婷一区二区三区| 国产精品久久久久毛片软件| 亚洲精品一区二区三区福利| 91丨九色丨黑人外教| 极品美女销魂一区二区三区| 亚洲欧美区自拍先锋| 精品美女一区二区| 色婷婷综合在线| 国产精品一区二区不卡| 艳妇臀荡乳欲伦亚洲一区| 51精品久久久久久久蜜臀| 狠狠色2019综合网| 亚洲影视资源网| 亚洲成av人片一区二区| 亚洲日穴在线视频| 国产人成亚洲第一网站在线播放| 欧美日韩一二三区| 在线欧美日韩国产| av亚洲精华国产精华精华| 久久国产人妖系列| 视频一区国产视频| 亚洲综合成人在线| 亚洲欧美日韩在线| 亚洲欧洲国产日韩| 日本一区二区三区国色天香| 精品入口麻豆88视频| 欧美日韩第一区日日骚| www.欧美日韩| av网站免费线看精品| 成人va在线观看| 国产尤物一区二区| 精品一区二区三区视频在线观看 | 国产精品天天摸av网| 久久久久久综合| 国产亚洲精品免费| 久久青草国产手机看片福利盒子 | 精品盗摄一区二区三区| 日韩免费电影网站| 精品处破学生在线二十三| 日韩女优制服丝袜电影| 欧美日韩精品系列| 国产成人免费在线| 91国内精品野花午夜精品| 欧美中文字幕亚洲一区二区va在线| 91啪亚洲精品| 欧美福利一区二区| 日韩欧美高清在线| 欧美韩国日本不卡| 亚洲免费观看在线观看| 亚洲国产一区二区三区青草影视| 亚洲国产成人精品视频| 日本亚洲欧美天堂免费| 久久成人久久爱| 97久久超碰国产精品| 欧美私人免费视频| 日韩欧美国产麻豆| 国产精品国产a| 亚洲国产视频一区二区| 久久精品国产色蜜蜜麻豆| 国产.欧美.日韩| 色综合久久久久综合99| 91精品国产丝袜白色高跟鞋| 国产日产精品一区| 亚洲综合久久av| 国产在线不卡一区|