コード例 #1
0
Shape* ShapeManager::GenerateShape()
{ 
	int random = Random::Range(0, 7);
	Shape::ShapeType shapeType = Shape::ShapeType::Box;

	if(random == 0)
	{ shapeType = Shape::ShapeType::Line; }
	else if(random == 1)
	{ shapeType = Shape::ShapeType::Box; }
	else if(random == 2)
	{ shapeType = Shape::ShapeType::S; }
	else if(random == 3)
	{ shapeType = Shape::ShapeType::Z; }
	else if(random == 4)
	{ shapeType = Shape::ShapeType::T; }
	else if(random == 5)
	{ shapeType = Shape::ShapeType::J; }
	else if(random == 6)
	{ shapeType = Shape::ShapeType::L; }

	SDL_Surface* img = NULL;
	random = Random::Range(0, 4);
	if(random == 0)
	{ img = ImageLoader::GetImage(ImageLoader::Image::RedSquare); }
	else if(random == 1)
	{ img = ImageLoader::GetImage(ImageLoader::Image::BlueSquare); }
	else if(random == 2)
	{ img = ImageLoader::GetImage(ImageLoader::Image::GreenSquare); }
	else if(random == 3)
	{ img = ImageLoader::GetImage(ImageLoader::Image::YellowSquare); }

	return GenerateShape(shapeType, img);
}
コード例 #2
0
ファイル: ShapeModel.cpp プロジェクト: bigdig/Portrait
void CShapeModel::GetShapeBase(int iEigen, int nVarChange, CShape &shape)
{
	CVisDVector eigenparam;
	eigenparam.Resize(m_PCA2Model.NbEigen());
	eigenparam = 0.;

	iEigen = min(eigenparam.Length()-1, max(0, iEigen));
	nVarChange = min(5, max(0, nVarChange));

	eigenparam[iEigen] = m_PCA2Model.EigenVal(iEigen)*nVarChange;

	GenerateShape(eigenparam, shape);
}
コード例 #3
0
ファイル: ShapeModel.cpp プロジェクト: bigdig/Portrait
void CShapeModel::GenerateShapeWithPos(double Tx, double Ty, double s, double theta, CVisDVector& param, CShape& desshape,EDataAnalysisMethod eMethod /*=ePCA*/)
{
	GenerateShape(param, desshape, eMethod);
	
    double a = s * cos(theta);
    double b = s * sin(theta);
    double x, y;
    int m_iNbPoint = desshape.PointNum();
    //rotate and scale
    for (int i = 0; i < m_iNbPoint; i++)
    {
        x = desshape.PointX(i);
        y = desshape.PointY(i);
        desshape.PointX(i) = a * x - b * y;
        desshape.PointY(i) = b * x + a * y;
    }
    //translate
    desshape.Translate(Tx, Ty);
}