Help in combining two functions in c++

前端 未结 4 2119
野性不改
野性不改 2021-01-29 13:00

I am just trying something with somebody else\'s code.

I have two functions:

int Triangle(Render *render, int numParts, Token *nameList, Pointer *valueLi         


        
4条回答
  •  天命终不由人
    2021-01-29 13:09

    I strongly recommend you to go with Functions because it allows better separation of logic and allows you to reuse the logic. But still in case if you want to use it that way please check the function below :

     int Triangle(Render *render, int numParts, Token *nameList, Pointer *valueList) 
            {
                int iOuter;
                for (iOuter=0; iOuter(*pv[j])[1] || 
                                                    (*pv[i])[1]==(*pv[j])[1] && (*pv[i])[0]>(*pv[j])[0]) {
                                                    Coord *tmp;
                                                    tmp = pv[i];
                                                    pv[i] = pv[j];
                                                    pv[j] = tmp;
                                            }
                                    }
                                ;
    
                                // all y the same?
                                if ((*pv[0])[1] == (*pv[2])[1]) {
                                    drawHorizonLine(render, *pv[0], *pv[2]);
                                    return SUCCESS;  
                                }
    
                                // assign middle point
                                Coord mid; 
                                mid[1] = (*pv[1])[1];       // y
                                float ratio = ((*pv[1])[1] - (*pv[0])[1]) / ((*pv[2])[1] - (*pv[0])[1]);
                                mid[0] = (*pv[0])[0] + ratio * ((*pv[2])[0] - (*pv[0])[0]); // x
                                mid[2] = (*pv[0])[2] + ratio * ((*pv[2])[2] - (*pv[0])[2]); // z
    
                                if (mid[0]<=(*pv[1])[0]) {  // compare X
                                    drawTrapzoid(render, *pv[0], mid, *pv[0], *pv[1]); // upper tri
                                    drawTrapzoid(render, mid, *pv[2], *pv[1], *pv[2]); // lower tri
                                }else{
                                    drawTrapzoid(render, *pv[0], *pv[1], *pv[0], mid); // upper tri
                                    drawTrapzoid(render, *pv[1], *pv[2], mid, *pv[2]); // lower tri
                                }
    
                                return SUCCESS;
    
                            }
    
                            break;
                    }
                }
    
                return SUCCESS;
            }
    

提交回复
热议问题