当前位置: 首页>>代码示例>>C++>>正文


C++ Segment::Angle方法代码示例

本文整理汇总了C++中Segment::Angle方法的典型用法代码示例。如果您正苦于以下问题:C++ Segment::Angle方法的具体用法?C++ Segment::Angle怎么用?C++ Segment::Angle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Segment的用法示例。


在下文中一共展示了Segment::Angle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: findConvexHull

bool ConvexHull::findConvexHull(){
    int minIndex = 0;
    int minAngleIndex = 0;
    for(int i = 0; i < this->_array.size(); i++){
        if(this->_array[i]->y() < this->_array[minIndex]->y()){
            minIndex = i;
        }
    }
    this->_hullIndexes.push_back(minIndex);
    Point *tempStartPoint = new Point(this->_array[minIndex]->x() - 1, this->_array[minIndex]->y());
    Segment *first = new Segment(tempStartPoint, this->_array[minIndex]);
    Segment *second;
    double minAngle = 3.14159265;
    if(minIndex){
        second = new Segment(this->_array[minIndex], this->_array[0]);
    }
    else{
        second = new Segment(this->_array[minIndex], this->_array[1]);
        minAngleIndex = 1;
    }

    for(int j = 0; j < this->_hullIndexes.size(); j++){
        for(int i = 0; i < this->_array.size(); i++){
            if(!isInHullIndexes(i)){
                second->setEnd(this->_array[i]);
                if(first->Angle(second) < minAngle)
                {
                    minAngle = first->Angle(second);
                    minAngleIndex = i;
                    qDebug() << minAngleIndex;
                }
            }
        }
        if(this->_hullIndexes.last() != minAngleIndex){
            this->_hullIndexes.push_back(minAngleIndex);
        }

        first = second;
        second->setEnd(this->_array[minAngleIndex]);
        second->setStart(first->getEnd());
    }

    return 1;
}
开发者ID:DiimaMenko,项目名称:CG3,代码行数:44,代码来源:convexhull.cpp


注:本文中的Segment::Angle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。