QMap中嵌套QMap(新增数据及遍历操作)

直接附代码了:

QPolygonF      m_PolygonPoints;  

m_PolygonPoints.push_back(QPoint(1,0));
m_PolygonPoints.push_back(QPoint(2,1));
m_PolygonPoints.push_back(QPoint(4,2));
......



int nSize = m_PolygonPoints.size();
	qreal x1, x2, y1, y2, x, y;
	qreal rad01, rad02, rad;
	QMap <int, QMap< int, QPointF>> tmp_map;
	QMap<int, QPointF> tmp_point;

	for (int i = 4; i < m_PolygonPoints.size()-4; i++)
	{
		QPointF pos0 = m_PolygonPoints[i];
		QPointF pos1 = m_PolygonPoints[i-4];
		QPointF pos2 = m_PolygonPoints[i+4];
		x1 = pos1.x();
		y1 = pos1.y();
		x2 = pos2.x();
		y2 = pos2.y();
		x = pos0.x();
		y = pos0.y();
		rad = atan2(y2 - y1, x2 - x1);
		rad01 = rad + 1.57;
		rad02 = rad - 1.57;
		for (int j = 1; j <= 15; j++) {
			tmp_point[1] = QPointF(x + j * cos(rad01),
				y + j * sin(rad01));
			tmp_point[2] = QPointF(x + j * cos(rad02),
				y + j * sin(rad02));
			tmp_map[j] = tmp_point;
		}
		tmp_point[0] = QPointF(x, y);
		tmp_map[0] = tmp_point;


		for (auto each : tmp_point.toStdMap()) {
			qDebug() << "key: " << each.first;
			qDebug() << "value: " << each.second;
		};

		
		for (auto each : tmp_map.toStdMap()) {

			for (auto eachChild : each.second.toStdMap()) {
				qDebug() << "keyChild: " << eachChild.first;
				qDebug() << "keyChild: " << eachChild.second;
			};

			
		};

		//point_list << tmp_map;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值