当前位置: 首页>>代码示例>>C++>>正文


C++ Coordenada类代码示例

本文整理汇总了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);

	}
开发者ID:luizphilipi,项目名称:INE5420,代码行数:7,代码来源:Canvas.hpp

示例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);
}
开发者ID:fernandobt8,项目名称:cg,代码行数:31,代码来源:Clipping.cpp

示例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;
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:8,代码来源:ManipulaWindow.hpp

示例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);
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:8,代码来源:ManipulaObjeto.hpp

示例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;
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:9,代码来源:ManipulaWindow.hpp

示例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);
		}
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:9,代码来源:ManipulaObjeto.hpp

示例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));
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:9,代码来源:ManipulaWindow.hpp

示例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);
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:11,代码来源:ManipulaWindow.hpp

示例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));
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:10,代码来源:ManipulaWindow.hpp

示例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
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:11,代码来源:ManipulaWindow.hpp

示例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);
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:11,代码来源:ManipulaObjeto.hpp

示例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;
}
开发者ID:luizphilipi,项目名称:INE5420,代码行数:12,代码来源:Matriz.cpp

示例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;
	}
开发者ID:deciomoritz,项目名称:CG2015.2,代码行数:12,代码来源:ManipulaWindow.hpp

示例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;
}
开发者ID:czarnia,项目名称:Megaman,代码行数:26,代码来源:personaje.cpp

示例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;
}
开发者ID:czarnia,项目名称:Megaman,代码行数:15,代码来源:personaje.cpp


注:本文中的Coordenada类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。