frac_tree2.c

来自「科学运算语言 MATLAB 的程序设计有关的函数代码」· C语言 代码 · 共 22 行

C
22
字号
#include "matrix.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
   double *xp, *yp, *vp, *x0p, *y0p, *v0p, *np, x0, y0;
   double vv; 
   long N, i;
   x0p=mxGetPr(prhs[0]); y0p=mxGetPr(prhs[1]); 
   v0p=mxGetPr(prhs[2]); np=mxGetPr(prhs[3]); N=np[0];
   X_P=mxCreateDoubleMatrix(N,1, mxREAL);
   Y_P=mxCreateDoubleMatrix(N,1, mxREAL);
   xp=mxGetPr(plhs[0]); yp=mxGetPr(plhs[1]);
   xp[0]=x0p[0]; yp[0]=y0p[0]; 
   for (i=1; i<N; i++){
      vv=v0p[i]; 
      if (vv<0.05) {yp[i]=0.5*yp[i-1]; xp[i]=0;}
      else if (vv<0.45) { 
         xp[i]=0.42*xp[i-1]-0.42*yp[i-1]; yp[i]=0.2+0.42*xp[i-1]+0.42*yp[i-1];}
      else if (vv<0.85) { 
         xp[i]=0.42*xp[i-1]+0.42*yp[i-1]; yp[i]=0.2-0.42*xp[i-1]+0.42*yp[i-1];}   
      else {xp[i]=0.1*xp[i-1]; yp[i]=0.1*yp[i-1]+0.2;}
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?