📄 comet3.c
字号:
_mxarray17_,
_mxarray19_,
_mxarray21_,
mclVe(mclIntArrayRef1(mclVsa(x, "x"), 1)),
_mxarray23_,
mclVe(mclIntArrayRef1(mclVsa(y, "y"), 1)),
_mxarray25_,
mclVe(mclIntArrayRef1(mclVsa(z, "z"), 1)),
NULL));
/*
* 'xdata',x(1),'ydata',y(1),'zdata',z(1));
* body = line('color',co(2,:),'linestyle','-','erase','none', ...
*/
mlfAssign(
&body,
mlfNLine(
1,
_mxarray11_,
mclVe(
mclArrayRef2(
mclVsv(co, "co"), _mxarray27_, mlfCreateColonIndex())),
_mxarray28_,
_mxarray30_,
_mxarray17_,
_mxarray32_,
_mxarray21_,
_mxarray34_,
_mxarray23_,
_mxarray34_,
_mxarray25_,
_mxarray34_,
NULL));
/*
* 'xdata',[],'ydata',[],'zdata',[]);
* tail = line('color',co(3,:),'linestyle','-','erase','none', ...
*/
mlfAssign(
&tail,
mlfNLine(
1,
_mxarray11_,
mclVe(
mclArrayRef2(
mclVsv(co, "co"), _mxarray10_, mlfCreateColonIndex())),
_mxarray28_,
_mxarray30_,
_mxarray17_,
_mxarray32_,
_mxarray21_,
_mxarray34_,
_mxarray23_,
_mxarray34_,
_mxarray25_,
_mxarray34_,
NULL));
/*
* 'xdata',[],'ydata',[],'zdata',[]);
* else
*/
} else {
/*
* % Choose first three colors for head, body, and tail
* head = line('color',co(1,:),'marker','o','erase','xor', ...
*/
mlfAssign(
&head,
mlfNLine(
1,
_mxarray11_,
mclVe(
mclArrayRef2(
mclVsv(co, "co"), _mxarray6_, mlfCreateColonIndex())),
_mxarray13_,
_mxarray15_,
_mxarray17_,
_mxarray19_,
_mxarray21_,
mclVe(mclIntArrayRef1(mclVsa(x, "x"), 1)),
_mxarray23_,
mclVe(mclIntArrayRef1(mclVsa(y, "y"), 1)),
_mxarray25_,
mclVe(mclIntArrayRef1(mclVsa(z, "z"), 1)),
NULL));
/*
* 'xdata',x(1),'ydata',y(1),'zdata',z(1));
* body = line('color',co(1,:),'linestyle','--','erase','none', ...
*/
mlfAssign(
&body,
mlfNLine(
1,
_mxarray11_,
mclVe(
mclArrayRef2(
mclVsv(co, "co"), _mxarray6_, mlfCreateColonIndex())),
_mxarray28_,
_mxarray35_,
_mxarray17_,
_mxarray32_,
_mxarray21_,
_mxarray34_,
_mxarray23_,
_mxarray34_,
_mxarray25_,
_mxarray34_,
NULL));
/*
* 'xdata',[],'ydata',[],'zdata',[]);
* tail = line('color',co(1,:),'linestyle','-','erase','none', ...
*/
mlfAssign(
&tail,
mlfNLine(
1,
_mxarray11_,
mclVe(
mclArrayRef2(
mclVsv(co, "co"), _mxarray6_, mlfCreateColonIndex())),
_mxarray28_,
_mxarray30_,
_mxarray17_,
_mxarray32_,
_mxarray21_,
_mxarray34_,
_mxarray23_,
_mxarray34_,
_mxarray25_,
_mxarray34_,
NULL));
/*
* 'xdata',[],'ydata',[],'zdata',[]);
* end
*/
}
/*
*
* m = length(z);
*/
mlfAssign(&m, mlfScalar(mclLengthInt(mclVa(z, "z"))));
/*
* k = round(p*m);
*/
mlfAssign(&k, mlfRound(mclMtimes(mclVa(p, "p"), mclVv(m, "m"))));
/*
*
* % Grow the body
* for i = 2:k+1
*/
{
int v_ = mclForIntStart(2);
int e_ = mclForIntEnd(mclPlus(mclVv(k, "k"), _mxarray6_));
if (v_ > e_) {
mlfAssign(&i, _mxarray34_);
} else {
/*
* j = i-1:i;
* set(head,'xdata',x(i),'ydata',y(i),'zdata',z(i))
* set(body,'xdata',x(j),'ydata',y(j),'zdata',z(j))
* drawnow
* end
*/
for (; ; ) {
mlfAssign(&j, mlfColon(mlfScalar(v_ - 1), mlfScalar(v_), NULL));
mclPrintAns(
&ans,
mlfNSet(
0,
mclVv(head, "head"),
_mxarray21_,
mclVe(mclIntArrayRef1(mclVsa(x, "x"), v_)),
_mxarray23_,
mclVe(mclIntArrayRef1(mclVsa(y, "y"), v_)),
_mxarray25_,
mclVe(mclIntArrayRef1(mclVsa(z, "z"), v_)),
NULL));
mclPrintAns(
&ans,
mlfNSet(
0,
mclVv(body, "body"),
_mxarray21_,
mclVe(mclArrayRef1(mclVsa(x, "x"), mclVsv(j, "j"))),
_mxarray23_,
mclVe(mclArrayRef1(mclVsa(y, "y"), mclVsv(j, "j"))),
_mxarray25_,
mclVe(mclArrayRef1(mclVsa(z, "z"), mclVsv(j, "j"))),
NULL));
mlfDrawnow(NULL);
if (v_ == e_) {
break;
}
++v_;
}
mlfAssign(&i, mlfScalar(v_));
}
}
/*
*
* % Primary loop
* m = length(x);
*/
mlfAssign(&m, mlfScalar(mclLengthInt(mclVa(x, "x"))));
/*
* for i = k+2:m
*/
{
mclForLoopIterator viter__;
for (mclForStart(
&viter__,
mclPlus(mclVv(k, "k"), _mxarray27_),
mclVv(m, "m"),
NULL);
mclForNext(&viter__, &i);
) {
/*
* j = i-1:i;
*/
mlfAssign(
&j,
mlfColon(
mclMinus(mclVv(i, "i"), _mxarray6_), mclVv(i, "i"), NULL));
/*
* set(head,'xdata',x(i),'ydata',y(i),'zdata',z(i))
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mclVv(head, "head"),
_mxarray21_,
mclVe(mclArrayRef1(mclVsa(x, "x"), mclVsv(i, "i"))),
_mxarray23_,
mclVe(mclArrayRef1(mclVsa(y, "y"), mclVsv(i, "i"))),
_mxarray25_,
mclVe(mclArrayRef1(mclVsa(z, "z"), mclVsv(i, "i"))),
NULL));
/*
* set(body,'xdata',x(j),'ydata',y(j),'zdata',z(j))
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mclVv(body, "body"),
_mxarray21_,
mclVe(mclArrayRef1(mclVsa(x, "x"), mclVsv(j, "j"))),
_mxarray23_,
mclVe(mclArrayRef1(mclVsa(y, "y"), mclVsv(j, "j"))),
_mxarray25_,
mclVe(mclArrayRef1(mclVsa(z, "z"), mclVsv(j, "j"))),
NULL));
/*
* set(tail,'xdata',x(j-k),'ydata',y(j-k),'zdata',z(j-k))
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mclVv(tail, "tail"),
_mxarray21_,
mclVe(
mclArrayRef1(
mclVsa(x, "x"), mclMinus(mclVv(j, "j"), mclVv(k, "k")))),
_mxarray23_,
mclVe(
mclArrayRef1(
mclVsa(y, "y"), mclMinus(mclVv(j, "j"), mclVv(k, "k")))),
_mxarray25_,
mclVe(
mclArrayRef1(
mclVsa(z, "z"), mclMinus(mclVv(j, "j"), mclVv(k, "k")))),
NULL));
/*
* drawnow
*/
mlfDrawnow(NULL);
/*
* end
*/
}
mclDestroyForLoopIterator(viter__);
}
/*
*
* % Clean up the tail
* for i = m+1:m+k
*/
{
mclForLoopIterator viter__;
for (mclForStart(
&viter__,
mclPlus(mclVv(m, "m"), _mxarray6_),
mclPlus(mclVv(m, "m"), mclVv(k, "k")),
NULL);
mclForNext(&viter__, &i);
) {
/*
* j = i-1:i;
*/
mlfAssign(
&j,
mlfColon(
mclMinus(mclVv(i, "i"), _mxarray6_), mclVv(i, "i"), NULL));
/*
* set(tail,'xdata',x(j-k),'ydata',y(j-k),'zdata',z(j-k))
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mclVv(tail, "tail"),
_mxarray21_,
mclVe(
mclArrayRef1(
mclVsa(x, "x"), mclMinus(mclVv(j, "j"), mclVv(k, "k")))),
_mxarray23_,
mclVe(
mclArrayRef1(
mclVsa(y, "y"), mclMinus(mclVv(j, "j"), mclVv(k, "k")))),
_mxarray25_,
mclVe(
mclArrayRef1(
mclVsa(z, "z"), mclMinus(mclVv(j, "j"), mclVv(k, "k")))),
NULL));
/*
* drawnow
*/
mlfDrawnow(NULL);
/*
* end
*/
}
mclDestroyForLoopIterator(viter__);
}
mxDestroyArray(ans);
mxDestroyArray(ax);
mxDestroyArray(co);
mxDestroyArray(head);
mxDestroyArray(body);
mxDestroyArray(tail);
mxDestroyArray(m);
mxDestroyArray(k);
mxDestroyArray(i);
mxDestroyArray(j);
mxDestroyArray(p);
mxDestroyArray(z);
mxDestroyArray(y);
mxDestroyArray(x);
mclSetCurrentLocalFunctionTable(save_local_function_table_);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -