本文整理汇总了C++中Vector2D::set方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector2D::set方法的具体用法?C++ Vector2D::set怎么用?C++ Vector2D::set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vector2D
的用法示例。
在下文中一共展示了Vector2D::set方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findBarycentre
bool QCamFindShift_barycentre::findBarycentre(Vector2D & center) {
const unsigned char * img=cam().yuvFrame().Y();
double imgSum=0, barySum=0;
int max=0;
center.set(0,0);
int seuil=(maximum_+(int)average_)>>1;
for(int j=cam().size().height()-1;
j>=0;--j) {
for (int i=cam().size().width()-1;
i>=0;--i) {
unsigned char val=img[i+j*cam().size().width()];
imgSum += val;
if (val>max) max=val;
if (val>=seuil) {
barySum+=val;
center+=Vector2D(i,j)*val;
}
}
}
average_=imgSum/(cam().size().height()*cam().size().width());
maximum_=max;
if (barySum>0) {
center/=barySum;
return true;
} else {
return false;
}
}
示例2:
void
GoalieLine::call()
{
Vector2D puntoReferencia; //Coordenadas de la bandera del centro de la porteria
double yTarget;
Vector2D target;
puntoReferencia.x =-52.5; // coordenadas de la bandera del centro de la porteria
puntoReferencia.y = 0.0;
//
if( (m_world->time() - m_world->bitacoraBalon.begin()->ciclo) < 3 ) // si esta reciente los datos del balon
{
if( m_world->bitacoraBalon.begin()->pos.x != puntoReferencia.x)
yTarget = ( (m_world->bitacoraBalon.begin()->pos.y - puntoReferencia.y) /
(m_world->bitacoraBalon.begin()->pos.x - puntoReferencia.x)
) * (m_x_target - puntoReferencia.x);
else
if(m_world->bitacoraBalon.begin()->pos.y <0.0)
yTarget = -7.0;
else
yTarget = 7.0;
if(yTarget >= 7.0 )
yTarget = 7.0;
if(yTarget <= -7.0)
yTarget = -7.0;
if( (m_world->me().pos.y > (yTarget - 0.5)) && (m_world->me().pos.y < (yTarget + 0.5)) )
m_center_ball->call();
else
{
target.set( m_x_target, yTarget );
m_go_to_point2->setRadius( 0.5 );
m_go_to_point2->setTarget( target );
m_go_to_point2->call();
}
}
else // No tengo datos recientes del balón, entonces lo busco
{
m_search_ball->call();
}
}