📄 ball.c
字号:
#line 67 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".h1", mlfNFill(1, mlfDoubleMatrix(1, 4, _array3_, (double *)NULL), mlfDoubleMatrix(1, 4, _array1_, (double *)NULL), mclMinus(mlfScalar(1), mlfDoubleMatrix(1, 3, _array0_, (double *)NULL)), NULL));
/*
* handles.h2 = fill([0 1 1 0],[0 0 1 1],1-[0.5 0.7 0.3]);
*/
#line 68 "f:\\book\\ball\\ball.m"
mclMline(68);
#line 68 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".h2", mlfNFill(1, mlfDoubleMatrix(1, 4, _array3_, (double *)NULL), mlfDoubleMatrix(1, 4, _array1_, (double *)NULL), mclMinus(mlfScalar(1), mlfDoubleMatrix(1, 3, _array0_, (double *)NULL)), NULL));
/*
* %初始化两个弹球
* handles.direction1 = 30/180*2*pi+rand(1,1)*30/180*2*pi;%方向
*/
#line 70 "f:\\book\\ball\\ball.m"
mclMline(70);
#line 70 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".direction1", mclPlus(mlfScalar(1.0471975511965976), mclMtimes(mclMtimes(mclMrdivide(mclMtimes(mlfNRand(1, mlfScalar(1), mlfScalar(1), NULL), mlfScalar(30)), mlfScalar(180)), mlfScalar(2)), mlfScalar(3.141592653589793))));
/*
* handles.direction2 = 30/180*2*pi+rand(1,1)*30/180*2*pi;
*/
#line 71 "f:\\book\\ball\\ball.m"
mclMline(71);
#line 71 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".direction2", mclPlus(mlfScalar(1.0471975511965976), mclMtimes(mclMtimes(mclMrdivide(mclMtimes(mlfNRand(1, mlfScalar(1), mlfScalar(1), NULL), mlfScalar(30)), mlfScalar(180)), mlfScalar(2)), mlfScalar(3.141592653589793))));
/*
* axis off
*/
#line 72 "f:\\book\\ball\\ball.m"
mclMline(72);
#line 72 "f:\\book\\ball\\ball.m"
mclPrintAns(&ans, mlfNAxis(0, NULL, NULL, mxCreateString("off"), NULL));
/*
* handles.go = 1;
*/
#line 73 "f:\\book\\ball\\ball.m"
mclMline(73);
#line 73 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".go", mlfScalar(1));
/*
* handles.position1 = [0.5 0.5];%位置
*/
#line 74 "f:\\book\\ball\\ball.m"
mclMline(74);
#line 74 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".position1", mlfDoubleMatrix(1, 2, _array4_, (double *)NULL));
/*
* handles.position2 = [0.3 0.3];
*/
#line 75 "f:\\book\\ball\\ball.m"
mclMline(75);
#line 75 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".position2", mlfDoubleMatrix(1, 2, _array5_, (double *)NULL));
/*
* handles.dx = 0.01;
*/
#line 76 "f:\\book\\ball\\ball.m"
mclMline(76);
#line 76 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".dx", mlfScalar(0.01));
/*
* handles.dy = 0.01;
*/
#line 77 "f:\\book\\ball\\ball.m"
mclMline(77);
#line 77 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".dy", mlfScalar(0.01));
/*
* handles.xdata1 = 0.03*cos(0:0.1:2*pi)+handles.position1(1);%弹球1的区域坐标
*/
#line 78 "f:\\book\\ball\\ball.m"
mclMline(78);
#line 78 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".xdata1", mclFeval(mclValueVarargout(), mlxPlus, mclMtimes(mlfScalar(0.03), mlfCos(mlfDoubleMatrix(1, 63, _array6_, (double *)NULL))), mlfIndexRef(mclVa(handles, "handles"), ".position1(?)", mlfScalar(1)), NULL));
/*
* handles.ydata1 = 0.03*sin(0:0.1:2*pi)+handles.position1(2);
*/
#line 79 "f:\\book\\ball\\ball.m"
mclMline(79);
#line 79 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".ydata1", mclFeval(mclValueVarargout(), mlxPlus, mclMtimes(mlfScalar(0.03), mlfSin(mlfDoubleMatrix(1, 63, _array6_, (double *)NULL))), mlfIndexRef(mclVa(handles, "handles"), ".position1(?)", mlfScalar(2)), NULL));
/*
* handles.xdata2 = 0.03*cos(0:0.1:2*pi)+handles.position2(1);%弹球2的区域坐标
*/
#line 80 "f:\\book\\ball\\ball.m"
mclMline(80);
#line 80 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".xdata2", mclFeval(mclValueVarargout(), mlxPlus, mclMtimes(mlfScalar(0.03), mlfCos(mlfDoubleMatrix(1, 63, _array6_, (double *)NULL))), mlfIndexRef(mclVa(handles, "handles"), ".position2(?)", mlfScalar(1)), NULL));
/*
* handles.ydata2 = 0.03*sin(0:0.1:2*pi)+handles.position2(2);
*/
#line 81 "f:\\book\\ball\\ball.m"
mclMline(81);
#line 81 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&handles, ".ydata2", mclFeval(mclValueVarargout(), mlxPlus, mclMtimes(mlfScalar(0.03), mlfSin(mlfDoubleMatrix(1, 63, _array6_, (double *)NULL))), mlfIndexRef(mclVa(handles, "handles"), ".position2(?)", mlfScalar(2)), NULL));
/*
* while handles.go < 100
*/
#line 82 "f:\\book\\ball\\ball.m"
mclMline(82);
#line 82 "f:\\book\\ball\\ball.m"
while (mlfTobool(mclFeval(mclValueVarargout(), mlxLt, mlfIndexRef(mclVa(handles, "handles"), ".go"), mlfScalar(100), NULL))) {
/*
* %计算弹球的运动的下一个位置
* [handles.xdata1,handles.ydata1,handles.position1,handles.direction1]=...
* getnextball(handles.xdata1,handles.ydata1,...
*/
#line 85 "f:\\book\\ball\\ball.m"
mclMline(85);
#line 85 "f:\\book\\ball\\ball.m"
mclFeval(mlfIndexVarargout(&handles, ".xdata1", &handles, ".ydata1", &handles, ".position1", &handles, ".direction1", NULL), mlxBall_getnextball, mlfIndexRef(mclVa(handles, "handles"), ".xdata1"), mlfIndexRef(mclVa(handles, "handles"), ".ydata1"), mlfIndexRef(mclVa(handles, "handles"), ".position1"), mlfIndexRef(mclVa(handles, "handles"), ".direction1"), mlfIndexRef(mclVa(handles, "handles"), ".dx"), mlfIndexRef(mclVa(handles, "handles"), ".dy"), NULL);
/*
* handles.position1,handles.direction1,handles.dx,...
* handles.dy);
* [handles.xdata2,handles.ydata2,handles.position2,handles.direction2]=...
* getnextball(handles.xdata2,handles.ydata2,...
*/
#line 89 "f:\\book\\ball\\ball.m"
mclMline(89);
#line 89 "f:\\book\\ball\\ball.m"
mclFeval(mlfIndexVarargout(&handles, ".xdata2", &handles, ".ydata2", &handles, ".position2", &handles, ".direction2", NULL), mlxBall_getnextball, mlfIndexRef(mclVa(handles, "handles"), ".xdata2"), mlfIndexRef(mclVa(handles, "handles"), ".ydata2"), mlfIndexRef(mclVa(handles, "handles"), ".position2"), mlfIndexRef(mclVa(handles, "handles"), ".direction2"), mlfIndexRef(mclVa(handles, "handles"), ".dx"), mlfIndexRef(mclVa(handles, "handles"), ".dy"), NULL);
/*
* handles.position2,handles.direction2,handles.dx,...
* handles.dy);
* %更新弹球的位置
* set(handles.h1,'XData',handles.xdata1,'Ydata',handles.ydata1);
*/
#line 93 "f:\\book\\ball\\ball.m"
mclMline(93);
#line 93 "f:\\book\\ball\\ball.m"
mclAssignAns(&ans, mlfNSet(0, mlfIndexRef(mclVa(handles, "handles"), ".h1"), mxCreateString("XData"), mlfIndexRef(mclVa(handles, "handles"), ".xdata1"), mxCreateString("Ydata"), mlfIndexRef(mclVa(handles, "handles"), ".ydata1"), NULL));
/*
* set(handles.h2,'XData',handles.xdata2,'Ydata',handles.ydata2);
*/
#line 94 "f:\\book\\ball\\ball.m"
mclMline(94);
#line 94 "f:\\book\\ball\\ball.m"
mclAssignAns(&ans, mlfNSet(0, mlfIndexRef(mclVa(handles, "handles"), ".h2"), mxCreateString("XData"), mlfIndexRef(mclVa(handles, "handles"), ".xdata2"), mxCreateString("Ydata"), mlfIndexRef(mclVa(handles, "handles"), ".ydata2"), NULL));
/*
* drawnow;
*/
#line 95 "f:\\book\\ball\\ball.m"
mclMline(95);
#line 95 "f:\\book\\ball\\ball.m"
mlfDrawnow(NULL);
/*
* pause(0.03);%程序运行暂停0.03s,用于控制弹球的运动速度
*/
#line 96 "f:\\book\\ball\\ball.m"
mclMline(96);
#line 96 "f:\\book\\ball\\ball.m"
mlfPause(mlfScalar(0.03));
/*
* end
*/
#line 97 "f:\\book\\ball\\ball.m"
mclMline(97);
#line 97 "f:\\book\\ball\\ball.m"
}
/*
*
* % Update handles structure
* guidata(hObject, handles);
*/
#line 100 "f:\\book\\ball\\ball.m"
mclMline(100);
#line 100 "f:\\book\\ball\\ball.m"
mclAssignAns(&ans, mlfNGuidata(0, mclVa(hObject, "hObject"), mclVa(handles, "handles")));
#line 100 "f:\\book\\ball\\ball.m"
mxDestroyArray(ans);
#line 100 "f:\\book\\ball\\ball.m"
mxDestroyArray(varargin);
#line 100 "f:\\book\\ball\\ball.m"
mxDestroyArray(handles);
#line 100 "f:\\book\\ball\\ball.m"
mxDestroyArray(eventdata);
#line 100 "f:\\book\\ball\\ball.m"
mxDestroyArray(hObject);
#line 100 "f:\\book\\ball\\ball.m"
mclSetCurrentLocalFunctionTable(save_local_function_table_);
/*
*
* % UIWAIT makes ball wait for user response (see UIRESUME)
* % uiwait(handles.figure1);
*
*
* % --- Outputs from this function are returned to the command line.
*/
#line 106 "f:\\book\\ball\\ball.m"
mclMline(106);
#line 106 "f:\\book\\ball\\ball.m"
mclMlineExitFunction();
#line 106 "f:\\book\\ball\\ball.m"
}
/*
* The function "Mball_ball_OutputFcn" is the implementation version of the "ball/ball_OutputFcn" M-function from file "f:\book\ball\ball.m" (lines 107-116). It contains the actual compiled code for that M-function. It is a static function and must only be called from one of the interface functions, appearing below.
*/
/*
* function varargout = ball_OutputFcn(hObject, eventdata, handles)
*/
#line 107 "f:\\book\\ball\\ball.m"
static mxArray * Mball_ball_OutputFcn(int nargout_, mxArray * hObject, mxArray * eventdata, mxArray * handles) {
#line 107 "f:\\book\\ball\\ball.m"
mclMlineEnterFunction("f:\\book\\ball\\ball.m", "ball/ball_OutputFcn")
#line 107 "f:\\book\\ball\\ball.m"
mexLocalFunctionTable save_local_function_table_ = mclSetCurrentLocalFunctionTable(&_local_function_table_ball);
#line 107 "f:\\book\\ball\\ball.m"
mxArray * varargout = NULL;
#line 107 "f:\\book\\ball\\ball.m"
mclCopyArray(&hObject);
#line 107 "f:\\book\\ball\\ball.m"
mclCopyArray(&eventdata);
#line 107 "f:\\book\\ball\\ball.m"
mclCopyArray(&handles);
/*
* % varargout cell array for returning output args (see VARARGOUT);
* % hObject handle to figure
* % eventdata reserved - to be defined in a future version of MATLAB
* % handles structure with handles and user data (see GUIDATA)
*
* % Get default command line output from handles structure
* varargout{1} = handles.output;
*/
#line 114 "f:\\book\\ball\\ball.m"
mclMline(114);
#line 114 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&varargout, "{?}", mlfScalar(1), mlfIndexRef(mclVa(handles, "handles"), ".output"));
#line 114 "f:\\book\\ball\\ball.m"
mxDestroyArray(handles);
#line 114 "f:\\book\\ball\\ball.m"
mxDestroyArray(eventdata);
#line 114 "f:\\book\\ball\\ball.m"
mxDestroyArray(hObject);
#line 114 "f:\\book\\ball\\ball.m"
mclSetCurrentLocalFunctionTable(save_local_function_table_);
#line 114 "f:\\book\\ball\\ball.m"
mclMlineFunctionReturn()
#line 114 "f:\\book\\ball\\ball.m"
return varargout;
/*
*
*/
#line 115 "f:\\book\\ball\\ball.m"
mclMlineExitFunctionReturn();
#line 115 "f:\\book\\ball\\ball.m"
}
/*
* The function "Mball_getnextball" is the implementation version of the "ball/getnextball" M-function from file "f:\book\ball\ball.m" (lines 116-158). It contains the actual compiled code for that M-function. It is a static function and must only be called from one of the interface functions, appearing below.
*/
/*
* function [newxdata,newydata,newposition,newdire]=...
*/
#line 116 "f:\\book\\ball\\ball.m"
static mxArray * Mball_getnextball(mxArray * * newydata, mxArray * * newposition, mxArray * * newdire, int nargout_, mxArray * xdata, mxArray * ydata, mxArray * preposition, mxArray * predire, mxArray * dx, mxArray * dy) {
#line 116 "f:\\book\\ball\\ball.m"
mclMlineEnterFunction("f:\\book\\ball\\ball.m", "ball/getnextball")
#line 116 "f:\\book\\ball\\ball.m"
mexLocalFunctionTable save_local_function_table_ = mclSetCurrentLocalFunctionTable(&_local_function_table_ball);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -