本文整理汇总了C++中Coordenada类的典型用法代码示例。如果您正苦于以下问题:C++ Coordenada类的具体用法?C++ Coordenada怎么用?C++ Coordenada使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Coordenada类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: move
void move(Coordenada passo) {
double xFactor = largura * passo.getX() / 100.0;
double yFactor = altura * passo.getY() / 100.0;
_centro += Coordenada(xFactor, yFactor);
}
示例2: getPoligonoLista
void Clipping::clippingPoligonoFechado(Poligono* poligono) {
list<Coordenada*> *poligonoVertices = getPoligonoLista(poligono);
if(poligonoVertices->size() > poligono->getCPPCoordenadas()->size()){
list<Coordenada*> *windowVertices = getWindowLista(poligonoVertices);
list<Coordenada*> *novosVertices = new list<Coordenada*>();
list<Coordenada*>::iterator it = poligonoVertices->begin();
Coordenada* first = NULL;
while (true) {
Coordenada *atual = (*it);
if(atual == first)
return;
it = ListUtils::incrementIteratorCircular(poligonoVertices, it);
if (!atual->isVisitado() && atual->isInterseccao() && CoordenadaUtils::isDentroWindow(*it, window)) {
if(!first)
first = atual;
atual->setVisitado(true);
novosVertices->push_back(atual);
percorrerLista(poligonoVertices, windowVertices, novosVertices, ListUtils::getIteratorInObject(poligonoVertices, atual));
Poligono *poligonoNovo = poligono->clone();
poligonoNovo->setCPPCoordenadas(novosVertices);
window->addWindowObjeto(poligonoNovo);
novosVertices = new list<Coordenada* >();
}
}
delete novosVertices;
ListUtils::destroyListByCondition(windowVertices, CoordenadaUtils::notVisitado);
}else
window->addWindowObjeto(poligono->clone());
ListUtils::destroyListByCondition(poligonoVertices, CoordenadaUtils::notVisitado);
}
示例3: getTransformadaMundo
vector<vector<double> > getTransformadaMundo(Coordenada wCentro, Window * window){
Coordenada tr(-1*wCentro.getX(),-1*wCentro.getY(),1);
vector<vector<double> > m = manipulaMtr->getTranslacao(tr);
m = manipulaMtr->multiplicaMatriz(m, manipulaMtr->getRotacao(-1*angulo));
Coordenada tr2(2/window->getLargura(),2/window->getAltura(),1);
m = manipulaMtr->multiplicaMatriz(m, manipulaMtr->getEscalonamento(tr2));
return m;
}
示例4: escalona
void escalona(Objeto* obj, Coordenada c){
Coordenada centro = obj->getCentro();
Coordenada a(-1*centro.getX(),-1*centro.getY(),1);
vector<vector<double> > m = manipulador->getTranslacao(a);
m = manipulador->multiplicaMatriz(m, manipulador->getEscalonamento(c));
m = manipulador->multiplicaMatriz(m, manipulador->getTranslacao(centro));
transformaObjeto(obj, m);
}
示例5: gambs_pontoPertence
bool gambs_pontoPertence(ListaEnc<Coordenada> pontos, Coordenada obj){
Elemento<Coordenada>* it = pontos.getHead();
for(int i =0; i<pontos.getSize(); i++){
if(igual(it->info->getX(),obj.getX()) && igual(it->info->getY(),obj.getY()))
return true;
it = it->_next;
}
return false;
}
示例6: transformaObjeto
void transformaObjeto(Objeto* b, vector<vector<double> >transformada){
ListaEnc<Coordenada>* coordenadas = b->pontos();
for(int i=0; i<coordenadas->getSize(); i++){
Coordenada antiga = coordenadas->retiraDoInicio();
vector<vector<double> > nova = manipulador->multiplicaMatriz(antiga.getVector(), transformada);
Coordenada nova_c(nova[0][0],nova[1][0],nova[2][0]);
coordenadas->adiciona(nova_c);
}
}
示例7: escalona
void escalona(Window* window, Coordenada c){
window->setTamanho(c);
Coordenada centro = window->getwCentro();
vector<vector<double> > m = manipulaMtr->getTranslacao(centro.negative());
m = manipulaMtr->multiplicaMatriz(m, manipulaMtr->getEscalonamento(c));
m = manipulaMtr->multiplicaMatriz(m, manipulaMtr->getTranslacao(centro));
transformaWindow(window, m);
manipulaWrld->fuckMundo(window->getDisplay(), window->getDisplay_virtual(), getTransformadaMundo(centro, window));
}
示例8: insereNoObjeto
//Obs: não consegui passar parâmetro null para fazer uma única funćão
void insereNoObjeto(ListaEnc<Coordenada>* pontosObjeto, Coordenada ref, Coordenada pontoA){
int pos = 0;
Elemento<Coordenada> *it_lista = pontosObjeto->getHead();
while(!igual(it_lista->info->getX(),ref.getX()) || !igual(it_lista->info->getY(),ref.getY())){//busca como referência o ponto A
it_lista = it_lista->_next;
pos++;
}
pos++;
pontosObjeto->adicionaNaPosicao(pontoA, pos);
}
示例9: rotaciona
void rotaciona(Window* window, double angulo){
this->angulo+=angulo;
Coordenada centro = window->getwCentro();
Coordenada a(-1*centro.getX(),-1*centro.getY(),1);
vector<vector<double> > m = manipulaMtr->getTranslacao(a);
m = manipulaMtr->multiplicaMatriz(m, manipulaMtr->getRotacao(angulo));
m = manipulaMtr->multiplicaMatriz(m, manipulaMtr->getTranslacao(centro));
transformaWindow(window, m);
manipulaWrld->fuckMundo(window->getDisplay(), window->getDisplay_virtual(), getTransformadaMundo(centro, window));
}
示例10: classificaPonto
int classificaPonto(Coordenada c){
if(c.getX()==-1)
return 1;//borda Oeste
if(c.getY()==1)
return 2;//borda Norte
if(c.getX()==1)
return 3;//borda Leste
if(c.getY()==-1)
return 4;//borda Sul
return 0; //centro
}
示例11: rotaciona
void rotaciona(Objeto* obj, Coordenada coord, double angulo){
/* (0,0,1): rotaciona no centro do mundo
* getCentro: rotaciona no centro do objeto
* (x, y, 1): rotaciona no ponto
*/
Coordenada a(-1*coord.getX(),-1*coord.getY(),1);
vector<vector<double> > m = manipulador->getTranslacao(a);
m = manipulador->multiplicaMatriz(m, manipulador->getRotacao(angulo));
m = manipulador->multiplicaMatriz(m, manipulador->getTranslacao(coord));
transformaObjeto(obj, m);
}
示例12:
Matriz::Matriz(Coordenada coord) {
mat.resize(1);
mat[0].resize(4);
mat[0][0] = coord.getX();
mat[0][1] = coord.getY();
mat[0][2] = coord.getZ();
mat[0][3] = coord.getW();
linhas = 1;
colunas = 4;
}
示例13: rcCode
int rcCode(Coordenada ponto){
int code =0;
if (ponto.getX() < -1)
code |= 1;
else if (ponto.getX() > 1)
code |= 2;
if (ponto.getY() < -1)
code |= 4;
else if (ponto.getY() > 1)
code |= 8;
return code;
}
示例14: coord_aux
std::vector<Coordenada> Personaje::coordenadas(Coordenada centro){
std::vector<Coordenada> s_coord;
Coordenada coord_aux(0,0);
for (size_t i = 0; i <= alto/2; i++){
for (size_t j = 0; j <= ancho/2; j++){
coord_aux = centro.arriba(i).izquierda(j);
if (std::find(s_coord.begin(), s_coord.end(), coord_aux) == s_coord.end()){
s_coord.push_back(centro.arriba(i).izquierda(j));
}
coord_aux = centro.arriba(i).derecha(j);
if (std::find(s_coord.begin(), s_coord.end(), coord_aux) == s_coord.end()){
s_coord.push_back(centro.arriba(i).derecha(j));
}
coord_aux = centro.abajo(i).izquierda(j);
if (std::find(s_coord.begin(), s_coord.end(), coord_aux) == s_coord.end()){
s_coord.push_back(centro.abajo(i).izquierda(j));
}
coord_aux = centro.abajo(i).derecha(j);
if (std::find(s_coord.begin(), s_coord.end(), coord_aux) == s_coord.end()){
s_coord.push_back(centro.abajo(i).derecha(j));
}
}
}
return s_coord;
}
示例15: colisiona
bool Personaje::colisiona(Bala *bala, Coordenada c){
if (!this->recibe_danio(bala)){
return false;
}
size_t x = c.obtener_abscisa();
size_t y = c.obtener_ordenada();
size_t ancho_max = coordenada.derecha(ancho/2).obtener_abscisa();
size_t ancho_min = coordenada.izquierda(ancho/2).obtener_abscisa();
size_t alto_max = coordenada.arriba(alto/2).obtener_ordenada();
size_t alto_min = coordenada.abajo(alto/2).obtener_ordenada();
if ( (x >= ancho_min) && (x <= ancho_max) && (y <= alto_min) && (y >= alto_max) ){
return true;
}
return false;
}