本文整理汇总了C++中QVec::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ QVec::push_back方法的具体用法?C++ QVec::push_back怎么用?C++ QVec::push_back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QVec
的用法示例。
在下文中一共展示了QVec::push_back方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setJointPosition
/**
* \brief This method stored the motors's names, the initial position of the motors and the goal
* position of them. When all is prepared, it raises up the flag READY.
* @param newAnglesOfMotors an structure with the name of the motors and the value os them.
*/
void SpecificWorker::setJointPosition(const MotorAngleList &newAnglesOfMotors)
{
qDebug()<<"YEAH";
QMutexLocker ml(mutex);
if(INITIALIZED == true)
{
// 1) SACAMOS VALORES ACTUALES DE LOS MOTORES: (aprovechamos y sacamos motores disponibles)
QVec firstAngles;
for(auto motor : newAnglesOfMotors)
{
float angle = innerModel->getJoint(QString::fromStdString(motor.name))->getAngle();
firstAngles.push_back(angle);
selectedMotors<<QString::fromStdString(motor.name);
}
// 2) SACAMOS VALORES FINALES DE LOS MOTORES
QVec finalAngles;
for(auto motor : newAnglesOfMotors)
{
float angle = motor.angle;
finalAngles.push_back(angle);
}
jointValues.append(firstAngles);
jointValues.append(finalAngles);
COMPUTE_READY = true;
qDebug()<<"||------------------------------------------------";
qDebug()<<"|| setJointPosition: jointValues-->"<<jointValues;
qDebug()<<"||------------------------------------------------";
}
}
示例2: asin
//-----------------------------------------------------------------------------
// MÉTODO EN PRUEBAS
//-----------------------------------------------------------------------------
// Devuelve los ángulos de rotación sacados de la matriz de rotación en un vector
// de 6 ELEMENTOS: x1, y1, z1, x2, y2, z2 (ángulos y sus opuestos: signos comabiados) En el primer caso
// X, Y, Z, X, Y, Z (ángulos repetidos) segundo caso.
// DOCUMENTACIÓN: http://www.soi.city.ac.uk/~sbbh653/publications/euler.pdf
QVec RMat::QMat::extractAnglesR() const
{
// Ten en cuenta: matriz transpuesta y con signos cambiados.
QVec angulos;
float x, y, z;
float x1, x2, y1, y2, z1, z2;
if (fabs(operator()(0,2)) > 1 || fabs(operator()(0,2)) < 1)
{
// ROTACION EN Y
y1 = asin(operator()(0,2));
y2 = M_PI-y1;
// ROTACION EN X
x1 = atan2((-operator()(1,2)/cos(y1)), (operator()(2,2)/cos(y1)));
x2 = atan2((-operator()(1,2)/cos(y2)), (operator()(2,2)/cos(y2)));
//ROTACION EN Z
z1 = atan2((-operator()(0,1)/cos(y1)), (operator()(0,0)/cos(y1)));
z2 = atan2((-operator()(0,1)/cos(y2)), (operator()(0,0)/cos(y2)));
angulos.push_back(x1); angulos.push_back(y1); angulos.push_back(z1); // ir por el camino 1
angulos.push_back(x2); angulos.push_back(y2); angulos.push_back(z2); // ir por el camino 2
}
else
{
// REVISAR LOS SIGNOS!!!
z = 0;
if (operator()(0,2) == 1)//Original if -sin(y)==-1 en el nuestro: if sin(y)==1
{
y = M_PI/2;
x = z + atan2( operator()(1,0), -operator()(2,0));// al final queda atan2(sin x, -(-cosx))-->atan2(sin x, cos x)
}
else //si sin(y)==-1 --> y = -pi/2
{
y = -M_PI/2;
x = -z +atan2(-operator()(1,0), operator()(2,0));
}
angulos.push_back(x); angulos.push_back(y); angulos.push_back(z);
angulos.push_back(x); angulos.push_back(y); angulos.push_back(z); //Repetimos los ángulos, por ser coherentes....
}
return angulos;
}