📄 ball.c
字号:
#line 116 "f:\\book\\ball\\ball.m"
mxArray * newxdata = NULL;
#line 116 "f:\\book\\ball\\ball.m"
mxArray * d1 = NULL;
#line 116 "f:\\book\\ball\\ball.m"
mclCopyArray(&xdata);
#line 116 "f:\\book\\ball\\ball.m"
mclCopyArray(&ydata);
#line 116 "f:\\book\\ball\\ball.m"
mclCopyArray(&preposition);
#line 116 "f:\\book\\ball\\ball.m"
mclCopyArray(&predire);
#line 116 "f:\\book\\ball\\ball.m"
mclCopyArray(&dx);
#line 116 "f:\\book\\ball\\ball.m"
mclCopyArray(&dy);
/*
* getnextball(xdata,ydata,preposition,predire,dx,dy)
* %function [newxdata,newydata,newposition,newdire]=
* % getnextball(xdata,ydata,preposition,predire,dx,dy)
* %计算弹球运行的下一个位置
* newxdata = xdata + dx*cos(predire);
*/
#line 121 "f:\\book\\ball\\ball.m"
mclMline(121);
#line 121 "f:\\book\\ball\\ball.m"
mlfAssign(&newxdata, mclPlus(mclVa(xdata, "xdata"), mclMtimes(mclVa(dx, "dx"), mlfCos(mclVa(predire, "predire")))));
/*
* newydata = ydata + dy*sin(predire);
*/
#line 122 "f:\\book\\ball\\ball.m"
mclMline(122);
#line 122 "f:\\book\\ball\\ball.m"
mlfAssign(newydata, mclPlus(mclVa(ydata, "ydata"), mclMtimes(mclVa(dy, "dy"), mlfSin(mclVa(predire, "predire")))));
/*
* newposition = preposition + [dx*cos(predire) dy*sin(predire)];
*/
#line 123 "f:\\book\\ball\\ball.m"
mclMline(123);
#line 123 "f:\\book\\ball\\ball.m"
mlfAssign(newposition, mclPlus(mclVa(preposition, "preposition"), mlfHorzcat(mclMtimes(mclVa(dx, "dx"), mlfCos(mclVa(predire, "predire"))), mclMtimes(mclVa(dy, "dy"), mlfSin(mclVa(predire, "predire"))), NULL)));
/*
* %弹球碰到右壁面
* if newposition(1)+0.03+0.001>=1
*/
#line 125 "f:\\book\\ball\\ball.m"
mclMline(125);
#line 125 "f:\\book\\ball\\ball.m"
if (mlfTobool(mclGe(mclPlus(mclPlus(mlfIndexRef(mclVv(*newposition, "newposition"), "(?)", mlfScalar(1)), mlfScalar(0.03)), mlfScalar(0.001)), mlfScalar(1)))) {
/*
* d1 = newposition - preposition;
*/
#line 126 "f:\\book\\ball\\ball.m"
mclMline(126);
#line 126 "f:\\book\\ball\\ball.m"
mlfAssign(&d1, mclMinus(mclVv(*newposition, "newposition"), mclVa(preposition, "preposition")));
/*
* d1(1) = -d1(1);
*/
#line 127 "f:\\book\\ball\\ball.m"
mclMline(127);
#line 127 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&d1, "(?)", mlfScalar(1), mclUminus(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(1))));
/*
* newdire = atan2(d1(2),d1(1));
*/
#line 128 "f:\\book\\ball\\ball.m"
mclMline(128);
#line 128 "f:\\book\\ball\\ball.m"
mlfAssign(newdire, mlfAtan2(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(2)), mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(1))));
/*
* return;
*/
#line 129 "f:\\book\\ball\\ball.m"
mclMline(129);
#line 129 "f:\\book\\ball\\ball.m"
goto return_;
/*
* end
*/
#line 130 "f:\\book\\ball\\ball.m"
}
/*
*
* %弹球碰到左壁面
* if newposition(1)-0.03-0.001<=0
*/
#line 133 "f:\\book\\ball\\ball.m"
mclMline(133);
#line 133 "f:\\book\\ball\\ball.m"
if (mlfTobool(mclLe(mclMinus(mclMinus(mlfIndexRef(mclVv(*newposition, "newposition"), "(?)", mlfScalar(1)), mlfScalar(0.03)), mlfScalar(0.001)), mlfScalar(0)))) {
/*
* d1 = newposition - preposition;
*/
#line 134 "f:\\book\\ball\\ball.m"
mclMline(134);
#line 134 "f:\\book\\ball\\ball.m"
mlfAssign(&d1, mclMinus(mclVv(*newposition, "newposition"), mclVa(preposition, "preposition")));
/*
* d1(1) = -d1(1);
*/
#line 135 "f:\\book\\ball\\ball.m"
mclMline(135);
#line 135 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&d1, "(?)", mlfScalar(1), mclUminus(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(1))));
/*
* newdire = atan2(d1(2),d1(1));
*/
#line 136 "f:\\book\\ball\\ball.m"
mclMline(136);
#line 136 "f:\\book\\ball\\ball.m"
mlfAssign(newdire, mlfAtan2(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(2)), mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(1))));
/*
* return;
*/
#line 137 "f:\\book\\ball\\ball.m"
mclMline(137);
#line 137 "f:\\book\\ball\\ball.m"
goto return_;
/*
* end
*/
#line 138 "f:\\book\\ball\\ball.m"
}
/*
*
* %弹球碰到上壁面
* if newposition(2)-0.03-0.001<=0
*/
#line 141 "f:\\book\\ball\\ball.m"
mclMline(141);
#line 141 "f:\\book\\ball\\ball.m"
if (mlfTobool(mclLe(mclMinus(mclMinus(mlfIndexRef(mclVv(*newposition, "newposition"), "(?)", mlfScalar(2)), mlfScalar(0.03)), mlfScalar(0.001)), mlfScalar(0)))) {
/*
* d1 = newposition - preposition;
*/
#line 142 "f:\\book\\ball\\ball.m"
mclMline(142);
#line 142 "f:\\book\\ball\\ball.m"
mlfAssign(&d1, mclMinus(mclVv(*newposition, "newposition"), mclVa(preposition, "preposition")));
/*
* d1(2) = -d1(2);
*/
#line 143 "f:\\book\\ball\\ball.m"
mclMline(143);
#line 143 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&d1, "(?)", mlfScalar(2), mclUminus(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(2))));
/*
* newdire = atan2(d1(2),d1(1));
*/
#line 144 "f:\\book\\ball\\ball.m"
mclMline(144);
#line 144 "f:\\book\\ball\\ball.m"
mlfAssign(newdire, mlfAtan2(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(2)), mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(1))));
/*
* return;
*/
#line 145 "f:\\book\\ball\\ball.m"
mclMline(145);
#line 145 "f:\\book\\ball\\ball.m"
goto return_;
/*
* end
*/
#line 146 "f:\\book\\ball\\ball.m"
}
/*
*
* %弹球碰到下壁面
* if newposition(2)+0.03+0.001>=1
*/
#line 149 "f:\\book\\ball\\ball.m"
mclMline(149);
#line 149 "f:\\book\\ball\\ball.m"
if (mlfTobool(mclGe(mclPlus(mclPlus(mlfIndexRef(mclVv(*newposition, "newposition"), "(?)", mlfScalar(2)), mlfScalar(0.03)), mlfScalar(0.001)), mlfScalar(1)))) {
/*
* d1 = newposition - preposition;
*/
#line 150 "f:\\book\\ball\\ball.m"
mclMline(150);
#line 150 "f:\\book\\ball\\ball.m"
mlfAssign(&d1, mclMinus(mclVv(*newposition, "newposition"), mclVa(preposition, "preposition")));
/*
* d1(2) = -d1(2);
*/
#line 151 "f:\\book\\ball\\ball.m"
mclMline(151);
#line 151 "f:\\book\\ball\\ball.m"
mlfIndexAssign(&d1, "(?)", mlfScalar(2), mclUminus(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(2))));
/*
* newdire = atan2(d1(2),d1(1));
*/
#line 152 "f:\\book\\ball\\ball.m"
mclMline(152);
#line 152 "f:\\book\\ball\\ball.m"
mlfAssign(newdire, mlfAtan2(mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(2)), mlfIndexRef(mclVv(d1, "d1"), "(?)", mlfScalar(1))));
/*
* return;
*/
#line 153 "f:\\book\\ball\\ball.m"
mclMline(153);
#line 153 "f:\\book\\ball\\ball.m"
goto return_;
/*
* end
*/
#line 154 "f:\\book\\ball\\ball.m"
}
/*
* %没有碰到任何壁面
* newdire = predire;
*/
#line 156 "f:\\book\\ball\\ball.m"
mclMline(156);
#line 156 "f:\\book\\ball\\ball.m"
mlfAssign(newdire, mclVa(predire, "predire"));
/*
*
*/
#line 157 "f:\\book\\ball\\ball.m"
mclMline(157);
#line 157 "f:\\book\\ball\\ball.m"
return_:
#line 157 "f:\\book\\ball\\ball.m"
mclValidateOutput(newxdata, 1, nargout_, "newxdata", "ball/getnextball");
#line 157 "f:\\book\\ball\\ball.m"
mclValidateOutput(*newydata, 2, nargout_, "newydata", "ball/getnextball");
#line 157 "f:\\book\\ball\\ball.m"
mclValidateOutput(*newposition, 3, nargout_, "newposition", "ball/getnextball");
#line 157 "f:\\book\\ball\\ball.m"
mclValidateOutput(*newdire, 4, nargout_, "newdire", "ball/getnextball");
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(d1);
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(dy);
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(dx);
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(predire);
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(preposition);
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(ydata);
#line 157 "f:\\book\\ball\\ball.m"
mxDestroyArray(xdata);
#line 157 "f:\\book\\ball\\ball.m"
mclSetCurrentLocalFunctionTable(save_local_function_table_);
#line 157 "f:\\book\\ball\\ball.m"
mclMlineFunctionReturn()
#line 157 "f:\\book\\ball\\ball.m"
return newxdata;
#line 157 "f:\\book\\ball\\ball.m"
mclMlineExitFunctionReturn();
#line 157 "f:\\book\\ball\\ball.m"
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -