//获得直线内的点, 不包括首尾点, 当点个数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;
}
}
QT笔记- 利用QLine::center()函数获得直线上均匀分布的点的坐标集合
最新推荐文章于 2023-08-10 22:00:00 发布