本文整理汇总了C++中ofRectangle::getCenter方法的典型用法代码示例。如果您正苦于以下问题:C++ ofRectangle::getCenter方法的具体用法?C++ ofRectangle::getCenter怎么用?C++ ofRectangle::getCenter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ofRectangle
的用法示例。
在下文中一共展示了ofRectangle::getCenter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawScaledStringByFont
void DrawGame::drawScaledStringByFont(
string Txt,
ofTrueTypeFont* pFont,
ofRectangle Rect )
{
// debug
float sh = pFont->stringHeight(Txt);
float sw = pFont->stringWidth(Txt);
ofRectangle R0(0,0,sw,-sh);
ofVec2f Trans = Rect.getCenter()-R0.getCenter();
float sx,sy;
sx = Rect.getWidth()/R0.getWidth();
sy = -Rect.getHeight()/R0.getHeight();
ofMatrix4x4 Mat;
Mat.translate(-R0.getCenter());
Mat.scale(sx,sy,1.0f);
// Mat.translate(Rect.getCenter()/ofVec2f(sx,sy));
Mat.translate(Rect.getCenter());
ofMultMatrix(Mat);
pFont->drawString(Txt,0,0);
ofMatrix4x4 MatI;
MatI = Mat.getInverse();
ofMultMatrix(MatI);
}
示例2: init
void Communitas::init(ofRectangle _space){
ofPoint center = ofPoint(_space.getCenter().x * width,_space.getCenter().y * height);
space.setFromCenter(center, MIN(width, height), MIN(width, height));
// Allocate the fbo and clean it
//
fbo.allocate(width, height);
fbo.begin();
ofClear(0,0);
fbo.end();
fade = 1.0f;
blur.allocate(width, height);
blur.setFade(fade);
blur.setPasses(5);
universe.set(space);
nucle.set(space);
universe.mass = 0.75f;
universe.vortex = space.height*0.1f;
universe.maxDistance = space.height*0.4f;
//universe.density = 0.4f;
universe.ph = 6.5f;
universe.joinParticles = true;
universe.correctOrbits = true;
universe.proportional = true;
universe.clockwise = true;
//universe.impulse = 0.4f;
universe.angle = 0.0f;
nucle.mass = 10.0f;
nucle.vortex = space.height*0.1;
nucle.maxDistance = space.height*0.1;
nucle.density = 1.0f; //= 0.05;
nucle.ph = 7.0f; //= 6.9;
nucle.joinParticles = true;
nucle.correctOrbits = false;// = true;
nucle.proportional = false;
nucle.clockwise = false;
nucle.impulse = 0.19f;
nucle.angle = 0.0f; //= -25;
reset();
}
示例3: PlotEllipExternal
void defense::PlotEllipExternal(vector<TheEllipse> ElliVec,ofRectangle RectLimits,int AMode){
TheEllipse CurrentEllipse(320,10,10,10,0,0);
if (AMode==0){
glPushMatrix();
ofTranslate(RectLimits.getCenter());
ofScale(RectLimits.width/Nx, RectLimits.height/Ny);
int Nsides = 128;
for (int k=0; k < ElliVec.size();k++){
CurrentEllipse = ElliVec[k];
ofSetColor(CurrentEllipse.TheGray,CurrentEllipse.TheGray,CurrentEllipse.TheGray);
glPushMatrix();
ofTranslate(CurrentEllipse.x-Nx/2.0, CurrentEllipse.y-Ny/2.0);
ofRotate(CurrentEllipse.angle);
glBegin(GL_POLYGON);
for (int s =0; s<Nsides; s++) {
glVertex2f(CurrentEllipse.a/2.0*cos(CV_PI/Nsides+s*2*CV_PI/Nsides)*(1+
5*CurrentEnergy*cos(s*2*CV_PI/8.0)),
CurrentEllipse.b/2.0*sin(CV_PI/Nsides+s*2*CV_PI/Nsides)*(1+
5*CurrentEnergy*cos(s*2*CV_PI/8.0)) );
}
glEnd();
glPopMatrix();
}
glPopMatrix();
}
}
示例4: init
void Pong::init(ofRectangle _space) {
ofPoint center = ofPoint(_space.getCenter().x * width,_space.getCenter().y * height);
space.setFromCenter(center,
_space.width* width * 0.85,
_space.height * height * 0.85);
fbo.allocate(width, height);
fbo.begin();
ofClear(0);
fbo.end();
ball = Ball(&space, &player1, &player2);
ofAddListener( ball.goal , this, &Pong::point);
pixel = space.width/40;
reset();
}
示例5: init
void Oca::init(ofRectangle _space){
ofPoint center = ofPoint(_space.getCenter().x * width,_space.getCenter().y * height);
scaleFactor = _space.height;// * 0.85;
space.setFromCenter(center,
scaleFactor * height,
scaleFactor * height);
fbo.allocate(width,height);
fbo.begin();
ofClear(0,255);
fbo.end();
mask.loadImage("Oca/mask.png");
background.loadImage("Oca/background.jpg");
reset();
}
示例6: init
void Shadows::init(ofRectangle _space){
background.loadImage("shadows/fondo.jpg");
// Screen resolution
//
//width = background.getWidth();
//height = background.getHeight();
// Asign a space (surface area)
//
ofPoint center = ofPoint(_space.getCenter().x * width,_space.getCenter().y * height);
space.setFromCenter(center, _space.width*width, _space.height*height);
// Allocate the fbo and clean it
//
fbo.allocate(width, height);
fbo.begin();
ofClear(0,0);
fbo.end();
blur.allocate(width,height);
text.loadSequence("shadows/texto.xml");
text.set(0,0,space.width*0.8, space.height*0.8);
ofRectangle area;
area.setFromCenter(space.x+space.width*0.5,
space.y+space.height*0.5,
text.width,
text.height);
textAnimation.set(area);
// Clean the variables and the start
//
reset();
}
示例7: setup
void BaseGame :: setup(ofRectangle rect, LaserManager * lm) {
laserManager = lm;
gameRect = rect;
centre = rect.getCenter();
name = "";
shotsPerGame = 6;
pew.loadSound("../../../Sounds/RetroLaunch.1.wav");
pew.setSpeed(0.7);
}
示例8:
DrawGame::GUIDataSlot::GUIDataSlot(
ofParameter<float>& p,
ofParameter<float>& pmax,
string tag,
string title,
ofRectangle R,
float TitleWdRatio,
ofTrueTypeFont* font,
float MaxValue,
float BarEdgeWidth,
ofColor CrTxt,
ofColor CrBarEmpty,
ofColor CrBarFill,
ofColor CrBarEdge):
dataSrc(&p),
dataMaxSrc(&pmax),
GUIBase(tag),
pFont(font),
Title(title),
maxVal(MaxValue),
titleWdRatio(TitleWdRatio),
edgeWd(BarEdgeWidth),
CrText(CrTxt),
CrBG(CrBarEmpty),
CrFill(CrBarFill),
CrEdge(CrBarEdge)
{
if(Crs.size()==0)
{
ofColor defCrs[10] = {
ofColor::yellow,
ofColor::green,
ofColor::darkGreen,
ofColor::skyBlue,
ofColor::cyan,
ofColor::blue,
ofColor::blueViolet,
ofColor::violet,
ofColor::chocolate,
ofColor::black};
for(int i=0;i<10;i++)
{
Crs.push_back(defCrs[i]);
}
}
Rect.setFromCenter(ofVec2f(0,0),R.getWidth(),R.getHeight());
ofNode::setPosition(R.getCenter());
}
示例9: PlotEllipses
void ofApp::PlotEllipses(vector<TheEllipse> ElliVec,ofRectangle RectLimits){
TheEllipse CurrentEllipse(320,10,10,10,0,0);
glPushMatrix();
ofTranslate(RectLimits.getCenter());
ofScale(RectLimits.width/Nx, RectLimits.height/Ny);
for (int k=0; k < ElliVec.size();k++){
CurrentEllipse = ElliVec[k];
ofSetColor(CurrentEllipse.TheGray,CurrentEllipse.TheGray,CurrentEllipse.TheGray);
glPushMatrix();
ofTranslate(CurrentEllipse.x-Nx/2.0, CurrentEllipse.y-Ny/2.0);
ofRotate(CurrentEllipse.angle);
ofEllipse(0.0,0.0 , CurrentEllipse.a, CurrentEllipse.b);
glPopMatrix();
}
glPopMatrix();
}
示例10: setup
void Rift::setup(const ofRectangle& bbox)
{
const int num_points = ceil(bbox.height / (0.5f * max_point_dist));
const float step = 1.0f / (num_points - 1);
const float x_mid = bbox.getCenter().x;
ofPolyline initial;
for (int i = 0; i < num_points; i ++)
{
const float r = i * step;
const float scale = r * (1 - r) * 4;
float x = x_mid + ofRandomf() * bbox.width * .2 * scale;
float y = bbox.y + r * bbox.height;
initial.addVertex(ofPoint(x, y));
}
setup(initial);
}
示例11: PlotEllipNoFill
void defense::PlotEllipNoFill(vector<TheEllipse> ElliVec,ofRectangle RectLimits){
TheEllipse CurrentEllipse(320,10,10,10,0,0);
ofNoFill();
ofSetLineWidth(1.0);
glPushMatrix();
ofTranslate(RectLimits.getCenter());
ofScale(RectLimits.width/Nx, RectLimits.height/Ny);
for (int k=0; k < ElliVec.size();k++){
CurrentEllipse = ElliVec[k];
glPushMatrix();
ofTranslate(CurrentEllipse.x-Nx/2.0, CurrentEllipse.y-Ny/2.0);
ofRotate(CurrentEllipse.angle);
ofEllipse(0.0,0.0 , CurrentEllipse.a, CurrentEllipse.b);
glPopMatrix();
}
glPopMatrix();
ofFill();
}
示例12:
void hlct::Helmet::update(const ofRectangle& stageRect, const ofRectangle& hitRect, const float& scale){
this->stageRect.set(stageRect);
this->scale = scale;
float imgW = img.getWidth() * scale;
float imgH = img.getHeight() * scale;
if (alive && position.y <= stageRect.getBottom() - imgH/2) {
if (!win) {
position.y -= gravity * 1.2;
} else {
position.x = hitRect.getCenter().x - imgW * 0.5;
position.y = hitRect.getTop() - imgH * 1.5;
}
} else {
alive = false;
}
intersectRect.set(position, imgW, imgH);
}
示例13: PlotEllipsesTextureNew
void defense::PlotEllipsesTextureNew(vector<TheEllipse> ElliVec,ofRectangle RectLimits){
TheEllipse CurrentEllipse(320,10,10,10,0,0);
ofImage TheTextu;
TheTextu.loadImage("Blocks/transparentFishBR.png");
glPushMatrix();
ofTranslate(RectLimits.getCenter());
ofScale(RectLimits.width/Nx, RectLimits.height/Ny);
glEnable(GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
for (int k=0; k < ElliVec.size();k++){
CurrentEllipse = ElliVec[k];
ofSetColor(2*CurrentEllipse.TheGray,2*CurrentEllipse.TheGray,2*CurrentEllipse.TheGray);
glPushMatrix();
ofTranslate(CurrentEllipse.x-Nx/2.0, CurrentEllipse.y-Ny/2.0);
ofRotate(90+CurrentEllipse.angle);
TheTextu.draw(-CurrentEllipse.b/2.0,-CurrentEllipse.a/2.0 , CurrentEllipse.b, CurrentEllipse.a);
glPopMatrix();
}
glPopMatrix();
glDisable(GL_BLEND);
}
示例14: PlotEllipPolligon
void defense::PlotEllipPolligon(vector<TheEllipse> ElliVec,ofRectangle RectLimits){
TheEllipse CurrentEllipse(320,10,10,10,0,0);
glPushMatrix();
ofTranslate(RectLimits.getCenter());
ofScale(RectLimits.width/Nx, RectLimits.height/Ny);
int Nsides = (127-Slider1)*12/127 +4;
for (int k=0; k < ElliVec.size();k++){
CurrentEllipse = ElliVec[k];
ofSetColor(CurrentEllipse.TheGray,CurrentEllipse.TheGray,CurrentEllipse.TheGray);
glPushMatrix();
ofTranslate(CurrentEllipse.x-Nx/2.0, CurrentEllipse.y-Ny/2.0);
ofRotate(CurrentEllipse.angle);
glBegin(GL_POLYGON);
for (int s =0; s<Nsides; s++) {
glVertex2f(CurrentEllipse.a/2.0*cos(CV_PI/Nsides+s*2*CV_PI/Nsides),
CurrentEllipse.b/2.0*sin(CV_PI/Nsides+s*2*CV_PI/Nsides));
}
glEnd();
glPopMatrix();
}
glPopMatrix();
}
示例15: drawBoothScreen
void ForbiddenPlanet::drawBoothScreen(ofxCvColorImage webCamImg, ofRectangle faceBoundingBox)
{
// increase top and bottom of facebounding box by 35%
float newHeight = faceBoundingBox.height * 1.35f;
float heightDiff = newHeight - faceBoundingBox.height;
float newY = faceBoundingBox.y - heightDiff/2.0;
faceBoundingBox.y = newY;
faceBoundingBox.height = newHeight;
fboBuffer.begin();
ofClear(0,0,0);
float sizeMultX = 1.5f;//(float)BOOTH_SCREEN_SIZE_X / (float)webCamImg.width;
float sizeMultY = 1.5f;//(float)BOOTH_SCREEN_SIZE_Y / (float)webCamImg.height;
ofSetColor(255,255,255);
ofSetLineWidth(2.5f);
ofSetColor(255,255,255);
_backdropImg.draw(BOOTH_SCREEN_POS_X,0,BOOTH_SCREEN_SIZE_X,BOOTH_SCREEN_SIZE_Y);
ofNoFill();
ofSetColor(255,0,50);
// Find position of face
ofPoint faceCentre = faceBoundingBox.getCenter();
float faceCentreDiffY = BOOTH_SCREEN_SIZE_Y/2.0-25.0f-faceCentre.y;
float faceCentreDiffX = BOOTH_SCREEN_SIZE_X/2.0-faceCentre.x;
float faceSizeDiff = 384.000000 / faceBoundingBox.width;
float w = faceSizeDiff * (float)BOOTH_SCREEN_SIZE_X;
float h = faceSizeDiff * (float)BOOTH_SCREEN_SIZE_Y * 1.25f;
float xPos = (BOOTH_SCREEN_SIZE_X/2) - FACE_TARGET_POS_X + faceCentreDiffX;
float yPos = (BOOTH_SCREEN_SIZE_Y/2) - FACE_TARGET_POS_Y + faceCentreDiffY;
ofRectangle faceBounds;
float currentMult = 0.25f;
float prevMult = 0.75f;
if(_lastBounds->x != 0 &&_lastBounds->y != 0 &&_lastBounds->width != 0 &&_lastBounds->height != 0)
{
if(_lastBounds->x !=NULL && _lastBounds->y != NULL && _lastBounds->width !=NULL && _lastBounds->height != NULL)
{
printf("%f %f %f %f\n",_lastBounds->x,_lastBounds->y,_lastBounds->width,_lastBounds->height);
faceBounds = ofRectangle(xPos* currentMult + _lastBounds->x*prevMult,yPos * currentMult + _lastBounds->y * prevMult,w * currentMult + _lastBounds->width * prevMult,h * currentMult + _lastBounds->height*prevMult );
}
}else
faceBounds = ofRectangle(xPos,yPos,w,h);
// Use face bounds to chop out contour image
//printf("roi: %f %f %f %f\n",faceBoundingBox.x,faceBoundingBox.y,faceBoundingBox.width,faceBoundingBox.height);
if(faceBoundingBox.width > 0 && faceBoundingBox.height > 0 && faceBoundingBox.width>0 && faceBoundingBox.height > 0)
{
ofxCvGrayscaleImage grayConvert;
grayConvert = webCamImg;
ofImage img;
img.setFromPixels(grayConvert.getPixels(), grayConvert.width, grayConvert.height, OF_IMAGE_GRAYSCALE);
img.resize(1280,720);
img.crop(faceBoundingBox.x,faceBoundingBox.y,faceBoundingBox.width,faceBoundingBox.height);
//grayConvert.resize(640,480);
ofPushMatrix();
ofTranslate(15,0);
ofSetColor(200,0,75);
drawContours(0.4 + abs(sin(_contrast))*0.6f,img,sizeMultX,sizeMultY,faceBoundingBox);
ofTranslate(5,7);
drawContours(1.0f-0.4 + abs(sin(_contrast))*0.6f,img,sizeMultX,sizeMultY,faceBoundingBox);
ofPopMatrix();
}
_contrast += 0.025f;
ofFill();
ofSetColor(255,255,255);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE);
_laserVideo.draw(BOOTH_SCREEN_POS_X,0,BOOTH_SCREEN_SIZE_X,BOOTH_SCREEN_SIZE_Y);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
fboBuffer.end();
fboBuffer.draw(BOOTH_SCREEN_POS_X,0,BOOTH_SCREEN_SIZE_X,BOOTH_SCREEN_SIZE_Y);
/*
if(isShowBoothOnProjector())
fboBuffer.draw(BOOTH_SCREEN_SIZE_X - BOOTH_SCREEN_SIZE_X/4,BOOTH_SCREEN_SIZE_Y - BOOTH_SCREEN_SIZE_Y/4,BOOTH_SCREEN_SIZE_X/4,BOOTH_SCREEN_SIZE_Y/4);
else
_mainVideo.draw(BOOTH_SCREEN_SIZE_X - BOOTH_SCREEN_SIZE_X/4,BOOTH_SCREEN_SIZE_Y - BOOTH_SCREEN_SIZE_Y/4,BOOTH_SCREEN_SIZE_X/4,BOOTH_SCREEN_SIZE_Y/4);
*/
//.........这里部分代码省略.........