⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ball.c

📁 精通Matlab与C_C++混合程序设计.rar 是精通Matlab与C_C++混合程序设计 这本书的配套源码
💻 C
📖 第 1 页 / 共 4 页
字号:
    #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 + -