QT笔记- 利用QLine::center()函数获得直线上均匀分布的点的坐标集合

//获得直线内的点, 不包括首尾点, 当点个数sum等于2的整数次幂时, 返回的点是绝对均匀分布的.
void MapLabel::line_points(const QLine & line, int sum, QList<QPoint> * points)
{                                              
    if(sum < 1)
        return;
    QList<QLine> lines;
    lines << line;
    while(true){
        QList<QLine> lines_2;
        foreach (QLine var, lines) {
            *points << var.center();
            if(points->size() == sum)
                return;
            lines_2 << QLine(var.p1(), var.center()) << QLine(var.center(), var.p2());
        }
        lines = lines_2;
    }
}


版权声明:本文为qq_43058397原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。