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

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

?? raytrace.cpp

?? 實現二維非均勻介質下的射線追蹤
?? CPP
字號:

/* 兩點射線追蹤,設計者:胡治權  原理:參考楊文采《地球物理反演理論》,快速精準射線追蹤*/
/*功能:完成兩點射線追蹤,并將射線在剖面上的交點寫入磁盤文件*/
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define PAI 3.1415926

struct dotinform
{ 
	float x;
	float z;
	float nx;
	float nz;
	float tsum;
};/*存放點信息*/

struct jie
{ 
	float s;
	char ch;
	float val;
};/*存放解信息*/
int deltv(float x,float z,float nx,float nz,float *DVX,float *DVZ,float *vp,float *v,float fx,float dx,int xn,
		  float fz ,float dz,int zn);
float raytrace (float *X,float *Z,float *NX,float *NZ,float *T, float v,float dvx,float dvz,float dx,float dz,float fx,float fz,
			   struct dotinform *p,int *k,float xend, float zend);
void main()
{
	FILE *infp,*outfpxz,*outfpp;
	dotinform p[5000];
	char ch[20];
	int ii,ij,is;
	int vtype;
	float *v;
	float fangle ,endangle,dangle;
	float fsx,dsx;
	float fx,dx;
	float fz,dz;
	int   xn,zn,nsx;
    int   k=1,vflag;
    float xend,zend,n,sign;
	float x,z,t,va=0,dvxa=0,dvza=0,nx,nz,alpha,sx;
   
	printf("*******************射線追蹤(設計:胡治權)***********************\n");
    printf("***選擇輸入的速度文件類型:1. 文本文件  2. 二進制文件\n");
    do{
	   scanf("%d",&vtype);
	   if(vtype != 1 && vtype != 2)
		  printf("輸入錯誤,請重新輸入\n");
	   }while(vtype !=1 && vtype != 2);
	do{
        printf("***輸入速度文件名:");
        scanf("%s",ch);
        if((infp = fopen(ch,"r")) == NULL)
			printf("無法打開指定的速度文件,請核對后重新輸入!\n");
	}while(infp == NULL);
	printf("***輸入速度網格剖分參數***\n");
	printf("橫向起始坐標(數據類型:float):fx=");
	scanf("%f",&fx);
	do{
	   printf("橫向采樣間隔(數據類型:float>0):dx=");
	   scanf("%f",&dx);
	   if(dx <= 0) printf("dx<=0輸入錯誤,請重新輸入!");
	   }while(dx<=0);
	do{
	   printf("橫向采樣點數(數據類型:int>0):xn=");
	   scanf("%d",&xn);
	   if(xn<=0)printf("xn<=0輸入錯誤,請重新輸入!");
	   }while(xn<=0);
    printf("縱向起始坐標(數據類型:float):默認設置fz=0\n");
    fz = 0;
	do{
	    printf("縱向采樣間隔(數據類型:float>0):dz=");
	    scanf("%f",&dz);
		if(dz<=0)printf("dz<=0輸入錯誤,請重新輸入!");
	}while(dz<=0);
	do{
	    printf("縱向采樣點數(數據類型:int>0):zn=");
		scanf("%d",&zn);
		if(zn<=0)printf("zn<=0輸入錯誤,請重新輸入!");
	}while(zn<=0);
    
	xend = fx +(xn-1)*dx;
	zend = fz +(zn-1)*dz;
	printf("***輸入炮參數***\n");
	printf("請輸入第一炮的橫坐標(數據類型float):fsx=");
	do{
	   scanf("%f",&fsx);
       if(fsx<fx || fsx >xend) printf("炮點不在剖面上,請重新輸入!");
	   }while(fsx <fx || fsx >xend);
   do{
	    printf("炮點采樣間隔(數據類型:float>0):dsx=");
	    scanf("%f",&dsx);
		if(dsx<=0)printf("dsx<=0輸入錯誤,請重新輸入!");
	}while(dsx<=0);
	do{
	    printf("炮點采樣點數(數據類型:int>0):nsx=");
		scanf("%d",&nsx);
		if(nsx<=0)printf("nsx<=0輸入錯誤,請重新輸入!");
	}while(nsx<=0);
	printf("***角度參數***\n");
	do{
		printf("輸入角度起始值(°):fangle=");
		scanf("%f",&fangle);
		printf("輸入角度中止值(°)>=起始值:endangle=");
		scanf("%f",&endangle);
		if(fangle>endangle)printf("輸入錯誤,請重新輸入!");
	}while(fangle>endangle);
	do{
		 printf("輸入角度增量(>=0):dangle=");
		 scanf("%f",&dangle);
		 if(dangle<0)printf("輸入錯誤,請重新輸入!");
	}while(dangle<0);
	printf("*******參數輸入完畢*******\n");
	printf("進行射線追蹤,請稍等...\n");


	outfpxz=fopen("xz.dat","w");
	outfpp=fopen("pshu.dat","w");

    
    v= (float*) malloc(xn*zn*sizeof(float));
 
   if(vtype == 1)
   {
    for (ii = 0 ; ii < zn; ii++)
	{

		for (ij = 0;ij < xn;ij++)
		{
			fscanf(infp,"%f",&v[ii*xn+ij]);
		
		}
       
	}
   }else
   {
	   fread(v,sizeof(float),zn*xn,infp);
   }
  
   for(is = 0;is< nsx ; is++)
   {
      sx = fsx + is*dsx;n=0;
	  
	  while ((fangle + n*dangle) <= endangle)
	  {
		  x = sx;z = 0;
		  alpha = (float)PAI*(fangle + n*dangle)/180;
		  printf("射線追蹤:炮點sx=%f,入射角度alpha=%f,",sx,(fangle+n*dangle));
		  nx = -(float)sin(alpha);
	      nz = (float)cos(alpha)  ; 
	      t  = 0;                      
	      p[0].x = x;    
	      p[0].z = 0;
         
	    do
		{
          vflag = deltv(x,z,nx,nz,&dvxa,&dvza,&va,v,fx,dx,xn,fz,dz,zn);
		  if(vflag == 0) break;
          sign=raytrace(&x,&z,&nx,&nz,&t,va,dvxa,dvza,dx,dz,fx,fz,p,&k,xend,zend);
		  if(sign == 0 || sign == -1) break;
		}while(1);
	
        
		if(sign != 0 )
        {
          for (ii = 0;ii < k ;ii++)
		  {
		   fprintf(outfpxz,"%.8f  ",p[ii].x);
	       fprintf(outfpxz,"%.8f\n ",p[ii].z);
		  }
		  fprintf(outfpp,"%d\n",k);
		  printf("射線交點數k=%d\n",k);
		}else{ printf("追蹤失敗!\n");}
		 k = 1;
		 n = n + 1;
	  }
    printf("完成炮點sx=%f的射線追蹤\n",sx);
   }


    printf("完成射線追蹤!");
    fclose(infp);
	fclose(outfpxz);
	fclose(outfpp);

}
int deltv(float x,float z,float nx,float nz,float *DVX,float *DVZ,float *vp,float *v,float fx,float dx,int xn,
		  float fz ,float dz,int zn)
{
	float l,dvx,dvz;
	float v1,v2,v3,v4;
	float dv1,dv2,dv1x,dv1z,dv2x,dv2z;
	int i,j;

	
	j = (int)floor((x-fx)/dx);
	i = (int)floor((z-fz)/dz);



	/*求速度梯度*/
	if(j>=0 && j<= xn && i>=0 && i<=zn)
	{
	
          if(nx<0 &&nz<0)
		  {
			  if(i-1 <0 || j-1 <0) return 0;
			  v1 = v[(i-1)*xn+j-1];v2 = v[(i-1)*xn+j];
			  v3 = v[i*xn+j];      v4 = v[i*xn+j-1];
		  }
		  if(nx>0 && nz<0)
		  {
			  if(i-1 <0 || j+1 >xn) return 0;
			  v1 = v[(i-1)*xn + j] ; v2 = v[(i-1)*xn+j+1];
			  v3 = v[i*xn +j+1] ;    v4 = v[i*xn +j];
		  }
		  if(nx >0 && nz>0)
		  {
			  if(i+1 > zn || j+1 > xn) return 0;
			  v1 = v[i*xn+j]; v2 = v[i*xn +j+1];
			  v3 = v[(i+1)*xn+j+1]; v4 = v[(i+1)*xn +j];
		  }
          if(nx <0 && nz>0)
		  {
			  if(i+1 >zn || j-1<0) return 0;
			  v1 = v[i*xn +j-1]; v2 = v[i*xn +j];
			  v3 = v[(i+1)*xn+j];v4 = v[(i+1)*xn+j-1];
		  }
		  
	      l = (float)sqrt(dx*dx+dz*dz);
		  dv1 = (v3-v1)/l;dv1x = dv1*dx/l;dv1z = dv1*dz/l;
		  dv2 = (v4-v2)/l;dv2x =-dv2*dx/l;dv2z = dv2*dz/l;
		  *DVX = (float)0.5*(dv1x+dv2x);
		  *DVZ = (float)0.5*(dv1z+dv2z);
		 
	}else return 0;
    dvx = *DVX;dvz =*DVZ;
	if(j>= 0 && j<= xn && i >=0 && i <= zn)
	{
		if(fmod((x-fx),dx) == 0 && fmod((z-fz),dz) == 0)
			*vp = v[i*xn+j];
		else
			*vp = v[i*xn+j]+(float)fmod((x-fx),dx)*dvx+(float)fmod((z-fz),dz)*dvz;
        return 1;
	}else return 0;

}



float raytrace (float *X,float *Z,float *NX,float *NZ,float *T,float v,float dvx,float dvz,float dx,float dz,float fx,float fz,
			   struct dotinform*p,int *k,float xend,float zend)
{
	/*變量定義*/
   int i,j,flag;
   int  jj,ks;
   float x,z,nx,nz,t;
   jie so,s[8],ends[8];
   float deltx,zbefore,zafter;
   float xa,xb,xc1,xc2,delt,zs,za,zb,zc1,zc2,delt1,delt2,xs;
   float deltz,xbefore,xafter;
   float deltk;
  
   x = *X;
   z = *Z;
   nx = *NX;
   nz = *NZ;
   t  = *T;
  
   for(i=0;i<8;i++)
   {
	   s[i].ch= 'a';s[i].s = -1;s[i].val = 0;
	   ends[i].ch= 'a';ends[i].s= -1;ends[i].val=0;
   }
 
   so.ch = 'a' ; so.s = -1;so.val= 0;
  
  
   if(fmod(x,dx) == 0) {flag = 1;}   /*flag=1,射線從Z軸入射*/
   if(fmod(z,dz) == 0) {flag = 2;}
   if(flag != 1 && flag != 2) return 0; 
  
   if(v <= 0) return 0;
   i = 0;
   j = 0;
   ks= 0;   
   switch (flag){
   case 1:
	   if(nx >0)
	   {
		   deltx = dx;
	   }else{
		   deltx = -dx;
	   }
    
	   xa = (dvx*nx*nx+dvz*nx*nz-dvx)/(2*v);
	   xb = nx;
	   xc1= 0;
	   xc2= -deltx;
	   delt = xb*xb - 4*xa*xc2;
	   if(xa != 0)
	   {
	     s[i].s = -(xb/xa);s[i].ch = 'x';s[i].val = x;
	     i++;
	     if (delt >= 0)
		 {
		   s[i].s = (-xb+(float)sqrt(delt))/(2*xa);s[i].ch = 'x';s[i].val = (x+deltx);
		   i++;
           s[i].s = (-xb-(float)sqrt(delt))/(2*xa);s[i].ch = 'x';s[i].val = (x+deltx);
		   i++;
		 }
	   }else{
         s[i].s = -(xc2/xb);s[i].ch = 'x';s[i].val = (x+deltx); i++;
        
	   }
      
	   if(nz > 0)
	   {
		   zbefore = z - (float)fmod(z,dz);
	       zafter  = zbefore + dz;
	   }else{ 
		      if ( fmod(z,dz) == 0.0)
			  {
				  zafter = z ;
	              zbefore  = zafter - dz;
			  }else{
                 zbefore = z - (float)fmod(z,dz);
	             zafter  = zbefore + dz;
			  }
	   }
	   for(j = 0; j<i ;j++)
	   {
		   if (s[j].s >0) 
		   {
			   zs = s[j].s*s[j].s*(dvz*nz*nz+dvx*nx*nz-dvz)/(2*v)+nz*s[j].s +z;
		       if (zbefore <= zs && zs <= zafter) 
			   {
				   ends[ks].s = s[j].s;ends[ks].ch = s[j].ch;ends[ks].val = s[j].val;ks++;
			   }
		   }
	   }
	   

	   za = (dvz*nz*nz+dvx*nx*nz-dvz)/(2*v);
	   zb = nz;
	   zc1= z-zbefore;
	   zc2= z-zafter;
	   delt1 = zb*zb-4*za*zc1;                   
	   delt2 = zb*zb-4*za*zc2;
	   if(za != 0)
	   {
	     if (delt1 >= 0)
		 {
		   s[i].s = (-zb+(float)sqrt(delt1))/(2*za);s[i].ch = 'z';s[i].val = zbefore;i++;
           s[i].s = (-zb-(float)sqrt(delt1))/(2*za);s[i].ch = 'z';s[i].val = zbefore;i++;
		 }
	     if (delt2 >= 0)
		 {
           s[i].s = (-zb+(float)sqrt(delt2))/(2*za);s[i].ch = 'z';s[i].val = zafter;i++;
           s[i].s = (-zb-(float)sqrt(delt2))/(2*za);s[i].ch = 'z';s[i].val = zafter;i++;       
		 }
	   }else{
              s[i].s = -(zc1/nz);s[i].ch = 'z';s[i].val = zbefore;i++;
              s[i].s = -(zc2/nz);s[i].ch = 'z';s[i].val = zafter;i++;
	   }

	   for(jj = j ;jj <i ;jj++)
	   {
		   if (s[jj].s >0) 
		   {
			   xs = s[jj].s*s[jj].s*(dvx*nx*nx+dvz*nx*nz-dvx)/(2*v)+nx*s[jj].s+x;
		       if ((x<=xs && xs<=x+deltx)||(x+deltx <= xs && xs <= x)) 
			   {
				   ends[ks].s = s[jj].s;ends[ks].ch = s[jj].ch;ends[ks].val = s[jj].val;ks++;
			   }
		   }
	   }
	   so.s = 999999;
	   for(jj = 0 ;jj<ks ; jj++)
	   {
		   if(ends[jj].s<=so.s)
		   {
			   so.s = ends[jj].s;so.ch = ends[jj].ch;so.val = ends[jj].val;
		   }
	   }
	   break;

   case 2:
       if (nz >0) 
	   {
		   deltz = dz;
	   }else{
		   deltz = -dz;                       
	   }
	  
	   za = (dvz*nz*nz+dvx*nx*nz-dvz)/(2*v);
	   zb = nz;
	   zc1= 0;
	   zc2= -deltz;
	   delt= zb*zb - 4*za*zc2;
	   if(za != 0)
	   {
	     s[i].s=-(zb/za);s[i].ch = 'z';s[i].val = z;
	     i++;
	
	     if (delt >= 0)
		 {
		   s[i].s = (-zb+(float)sqrt(delt))/(2*za);s[i].ch = 'z';s[i].val = (z+deltz);i++;
           s[i].s = (-zb-(float)sqrt(delt))/(2*za);s[i].ch = 'z';s[i].val = (z+deltz);i++;
		 }
	   }else{
              s[i].s = -(zc2/zb);s[i].ch = 'z';s[i].val = (z+deltz);
	          i++;
	   }
	   if(x>0)
	   {
	     if(nx >=0)
		 {
	       xbefore = x - (float)fmod(x,dx);
	       xafter  = xbefore + dx;
		 }else{
		      if (fmod(x,dx) == 0.0)
			  { 
				  xafter = x;
				  xbefore = xafter -dx;
			  }else{ 
				   xbefore = x - (float)fmod(x,dx);
	               xafter  = xbefore + dx;
			  }
		 }
	   }else{
           if(nx <=0)
		   {
	         xafter = x - (float)fmod(x,dx);
	         xbefore  = xafter - dx;
		   }else{
		      if (fmod(x,dx) == 0.0)
			  { 
				  xbefore = x;
				  xafter = xbefore +dx;
			  }else{ 
				   xafter = x - (float)fmod(x,dx);
	               xbefore  = xafter - dx;
			  }
		   }
	   }

	   for (j=0;j<i;j++)
	   {
		   if(s[j].s>0) 
		   {
			   xs = s[j].s*s[j].s*(dvx*nx*nx+dvz*nx*nz-dvx)/(2*v)+nx*s[j].s+x;
		       if(xbefore<= xs&& xs<= xafter) 
			   {
			     ends[ks].s = s[j].s;ends[ks].ch = s[j].ch;ends[ks].val = s[j].val;ks++;
			   }
		   }
	   }
	  

	   xa = (dvx*nx*nx+dvz*nx*nz-dvx)/(2*v);
	   xb = nx;
	   xc1=x-xbefore;
	   xc2=x-xafter;
	   delt1 = xb*xb-4*xa*xc1;
	   delt2 = xb*xb-4*xa*xc2;
	   
	   if(xa != 0)
	   {
	     if(delt1>=0)
		 {
		   s[i].s = (-xb+(float)sqrt(delt1))/(2*xa);s[i].ch = 'x';s[i].val = xbefore;i++;
           s[i].s = (-xb-(float)sqrt(delt1))/(2*xa);s[i].ch = 'x';s[i].val = xbefore;i++;
		 }

         if(delt2>=0)
		 {
		   s[i].s = (-xb+(float)sqrt(delt2))/(2*xa);s[i].ch = 'x';s[i].val = xafter;i++;
           s[i].s = (-xb-(float)sqrt(delt2))/(2*xa);s[i].ch = 'x';s[i].val = xafter;i++;
		 }
	   }else{
           s[i].s = -(xc1/nx);s[i].ch = 'x';s[i].val = xbefore;i++;
           s[i].s = -(xc2/nx);s[i].ch = 'x';s[i].val = xafter;i++;
	   }
 
	   for(jj = j;jj<i;jj++)
	   {
         
		   if(s[jj].s>0) 
		   {
			   zs = s[jj].s*s[jj].s*(dvz*nz*nz+dvx*nx*nz-dvz)/(2*v)+nz*s[jj].s+z;
		       if((z<= zs &&zs <= z+deltz)||(z+deltz <= zs && zs<=z))
			   {
			     ends[ks].s = s[jj].s;ends[ks].ch = s[jj].ch;ends[ks].val = s[jj].val;ks++;
			   
			   }
		   }
	   }
      
	   
	   so.s=999999;
	   for(jj=0;jj<ks;jj++)
	   {
		   if(ends[jj].s<=so.s) 
		   {  
			   so.s = ends[jj].s;so.ch = ends[jj].ch;so.val = ends[jj].val;
		   }
	   }
	   break;
	}

	if (so.s != 999999)
	{
	   
		if(so.ch == 'x')
		{ 
			*X = so.val;
            *Z = so.s*so.s*(dvz*nz*nz+dvx*nx*nz-dvz)/(2*v)+nz*so.s+z;
		}
		if(so.ch == 'z')
		{
            *X = so.s*so.s*(dvx*nx*nx+dvz*nx*nz-dvx)/(2*v)+nx*so.s+x;
		    *Z = so.val;
		}
		*T = so.s*(1-(dvx*nx+dvz*nz)*so.s/(2*v))/v+t;
        *NX = nx+(dvx*nx*nx+dvz*nz*nx-dvx)*so.s/v;
        *NZ = nz+(dvx*nx*nz+dvz*nz*nz-dvz)*so.s/v;
     	deltk = ((*NX)*(*NX)+(*NZ)*(*NZ)-1)/2;
		*NX = (*NX)/(1+deltk);
		*NZ = (*NZ)/(1+deltk);
	
/*		if(fabs((*NX)*(*NX)) >=0.8 && fabs((*NX)*(*NX)) <1)
		{
            if(*Z >z) *NZ = (float)sqrt(1-(*NX)*(*NX));
			else *NZ = (float)-sqrt(1-(*NX)*(*NX));
		}
        if(fabs((*NZ)*(*NZ)) >=0.8 && fabs((*NZ)*(*NZ)) <1)
		{
           	if(*X >x) *NX = (float)sqrt(1-(*NZ)*(*NZ));
			else *NX = (float)-sqrt(1-(*NZ)*(*NZ));
		}
*/
	    if(fabs(*NX)>1)
		{
			if(*X >x) *NX = (float)sqrt(1-(*NZ)*(*NZ));
			*NX = (float)-sqrt(1-(*NZ)*(*NZ));
		}
		if(fabs(*NZ)>1)
		{
            if(*Z >z) *NZ = (float)sqrt(1-(*NX)*(*NX));
			*NZ = (float)-sqrt(1-(*NX)*(*NX));
		} 
	
		if(*X == x)  return 0;
		if ((fx<=*X)&&(*X<= xend)&&(fz<=*Z)&&(*Z<=zend))
		{
		   p[*k].x= *X;
		   p[*k].z= *Z;
		   p[*k].nx=*NX;
		   p[*k].nz=*NZ;
		   p[*k].tsum=*T;
		   (*k)++;
		}
	   if(*X <= fx || *X >= xend || *Z<= fz || *Z>= zend) return -1;
	   return 1 ;
	}
	else {
		
		return 0;
		
	}
   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av不卡免费在线观看| 欧美综合亚洲图片综合区| 中文字幕制服丝袜成人av| 欧美日韩高清影院| 成人午夜精品一区二区三区| 视频一区二区中文字幕| 中文字幕一区二区不卡| 精品国产青草久久久久福利| 欧美亚洲综合色| av在线这里只有精品| 狠狠色伊人亚洲综合成人| 一区二区三区欧美久久| 欧美国产精品v| 欧美日韩国产综合视频在线观看 | 午夜私人影院久久久久| 久久久久久久久一| 91精品国产综合久久精品麻豆| av在线免费不卡| 国产成人av一区二区| 麻豆精品一二三| 日韩一区欧美二区| 亚洲香蕉伊在人在线观| 亚洲日本在线看| 国产精品少妇自拍| 久久色中文字幕| 欧美变态口味重另类| 欧美一区二区三区的| 欧美日韩高清一区二区三区| 欧美体内she精视频| 91亚洲精品乱码久久久久久蜜桃| 国产盗摄精品一区二区三区在线 | 国产日产亚洲精品系列| 日韩欧美电影在线| 日韩欧美成人一区| 精品少妇一区二区三区日产乱码| 欧美一区午夜视频在线观看| 欧美日韩国产bt| 欧美日本一区二区在线观看| 欧美三片在线视频观看| 欧美日韩精品是欧美日韩精品| 色婷婷久久一区二区三区麻豆| www.av亚洲| 色就色 综合激情| 欧洲人成人精品| 日本高清免费不卡视频| 日本韩国精品在线| 欧美日韩中文另类| 欧美精品v国产精品v日韩精品| 欧美午夜免费电影| 69精品人人人人| 日韩免费看网站| 国产精品高潮呻吟久久| 国产欧美一区视频| 亚洲日本乱码在线观看| 亚洲黄色录像片| 婷婷一区二区三区| 精品一区二区免费看| 国产美女视频一区| 99re这里只有精品首页| 91精品办公室少妇高潮对白| 欧美日韩aaaaa| 欧美videossexotv100| 精品福利在线导航| 中文字幕不卡三区| 亚洲一级二级三级| 蜜臀a∨国产成人精品| 国产一区二区三区av电影| 99视频有精品| 欧美精品视频www在线观看| 日韩欧美你懂的| 自拍偷在线精品自拍偷无码专区| 亚洲国产一区二区视频| 激情伊人五月天久久综合| 不卡视频免费播放| 欧美电影在线免费观看| 久久精品一区二区三区不卡牛牛| 亚洲激情中文1区| 久久精品国产77777蜜臀| 丰满白嫩尤物一区二区| 欧美日韩精品一区二区| 日本一区二区视频在线| 日韩精品免费视频人成| 国产99一区视频免费| 欧美日韩在线播放三区四区| 久久免费精品国产久精品久久久久| 亚洲欧美综合在线精品| 久久国产剧场电影| 日本久久精品电影| 精品国产电影一区二区| 亚洲午夜一区二区三区| 国产成人免费av在线| 欧美日韩高清一区二区不卡| 国产精品嫩草99a| 日本午夜一本久久久综合| 北岛玲一区二区三区四区| 日韩一级片在线播放| 亚洲精品写真福利| 国产尤物一区二区在线| 欧美日韩成人综合| 国产精品的网站| 国产又粗又猛又爽又黄91精品| 欧美日韩久久久| 亚洲人精品午夜| 国产+成+人+亚洲欧洲自线| 欧美一区二区三区精品| 亚洲国产精品久久人人爱蜜臀| 成人激情av网| 久久美女高清视频| 捆绑紧缚一区二区三区视频| 欧美日韩视频在线一区二区| 国产精品理伦片| 国产精品影视网| 日韩一区二区三区免费看| 亚洲图片自拍偷拍| 91蜜桃传媒精品久久久一区二区| 国产视频一区在线观看| 久久av资源站| 日韩免费视频一区| 免费视频一区二区| 欧美久久久久久久久| 一个色在线综合| 91在线免费视频观看| 国产精品久久久久久福利一牛影视 | 国产成人av一区二区三区在线 | 国产不卡在线播放| 亚洲高清三级视频| 91啪九色porn原创视频在线观看| 亚洲精品一区二区三区在线观看 | 337p亚洲精品色噜噜狠狠| 蜜桃视频一区二区三区在线观看 | 欧美日韩1区2区| 洋洋成人永久网站入口| 色综合久久综合网| 成人欧美一区二区三区1314| 国产精品中文字幕欧美| 日本一区二区三区国色天香| 国产高清视频一区| 久久精品网站免费观看| 国产在线麻豆精品观看| 欧美精品一区二区在线观看| 精品一区二区三区在线视频| 欧美α欧美αv大片| 国产精品亚洲一区二区三区在线| 日韩欧美在线观看一区二区三区| 视频精品一区二区| 日韩欧美一卡二卡| 国产一区视频网站| 欧美激情一区二区三区蜜桃视频| 国产乱淫av一区二区三区 | 国产精品国产三级国产普通话99| 成人中文字幕电影| 亚洲欧洲日韩一区二区三区| 成人av网站大全| 亚洲免费观看高清完整版在线观看熊 | 日本一区二区三区久久久久久久久不| 国产精品一级在线| 成人免费在线观看入口| 欧美三级日本三级少妇99| 亚洲国产成人高清精品| 91精品国产综合久久精品app| 青青草97国产精品免费观看 | 人人爽香蕉精品| 欧美一区二区三区四区视频| 久久99国产精品尤物| 国产日韩欧美精品在线| 色就色 综合激情| 日韩国产精品久久| 久久久蜜桃精品| 99麻豆久久久国产精品免费| 一区二区三区鲁丝不卡| 日韩一卡二卡三卡| 91亚洲午夜精品久久久久久| 日本不卡在线视频| 中文字幕精品一区二区三区精品| 色综合天天狠狠| 青草国产精品久久久久久| 国产精品嫩草影院av蜜臀| 欧美人妇做爰xxxⅹ性高电影| 精品一二线国产| 亚洲精品大片www| 久久久久99精品国产片| 日本韩国视频一区二区| 精品一区二区在线免费观看| 亚洲欧美偷拍三级| 久久综合狠狠综合久久激情| 一本色道久久综合精品竹菊| 久久99精品久久久久婷婷| 一区二区在线免费| 久久这里只有精品6| 欧美午夜一区二区| av一二三不卡影片| 激情综合五月天| 亚洲二区视频在线| 国产精品家庭影院| 精品成人免费观看| 欧美日韩不卡在线| 99久久99精品久久久久久| 国产一区二区在线观看视频| 亚洲成a人v欧美综合天堂| 国产精品免费人成网站|