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


C++ Punto类代码示例

本文整理汇总了C++中Punto的典型用法代码示例。如果您正苦于以下问题:C++ Punto类的具体用法?C++ Punto怎么用?C++ Punto使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Punto类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: addNodo

int Nodos::addNodo(Nodo* n) {
    Punto p = n->getPunto();
		    double x = p.getX();
		    double y = p.getY();
		    double z = p.getZ();
		    if(x>maxx) maxx = x;
		    if(x<minx) minx = x;
		    if(y>maxy) maxy = y;
		    if(y<miny) miny = y;
		    if(z>maxz) maxz = z;
		    if(z<minz) minz = z;


    // Si existe un indice en que haya un punto que fue borrado insertamos el punto ahi.
    if(borrados.size() > 0) {
        int ind = borrados[0];
        nodos[ind] = n;
        borrados.erase(borrados.begin());
        num_nodos_validos++; // actualizamos el numero de nodos validos
        return ind;
    }
    else {
        nodos.push_back(n); // agregamos el punto al contenedor.
        num_nodos++; // actualizamos el numero de nodos del contenedor
        num_nodos_validos++; // actualizamos el numero de nodos validos
        return (nodos.size()-1);
    }
}
开发者ID:gurroz,项目名称:Memori,代码行数:28,代码来源:nodos.cpp

示例2: drawAt

void Flecha::drawAt(const Punto &en) const
{
	float largo= vector.module();
	Punto punta= en+vector;
	glColor3f(color.r(),color.g(),color.b());
	if(largo<0.001){ //Es muy pequeño o nulo; lo dibujamos como un punto
		glPointSize(4.0);
		glBegin(GL_POINTS);
			glVertex3d(punta.x(),punta.y(),punta.z());
		glEnd();
	}
	else { //Si es más grande como un flecha
		glBegin(GL_LINES);
			glVertex3d(en.x(),en.y(),en.z());
			glVertex3d(punta.x(),punta.y(),punta.z());
		glEnd();
		glPushMatrix();
		glTranslatef(punta.x(),punta.y(),punta.z());
		glRotatef(vector.longitude(),0.0,1.0,0.0);
		glRotatef(-vector.latitude(),1.0,0.0,0.0);
		glTranslatef(0.0,0.0,-largo/10.0);
		glutWireCone(largo/50.0,largo/10.0,10,1);
		glPopMatrix();
	};
}
开发者ID:jobosk,项目名称:Ray-tracer,代码行数:25,代码来源:Primitivas.cpp

示例3: Punto

void Obstaculo::calTTC(float v, float antiguo)
{   float m ;
    float b;
     if(dir->getx()==0)
      m =  0;
     else
      m = dir->gety()/dir->getx();
    if(dir->getx()==0 || m==0) b = centro->gety();
    else
     b = centro->gety()/(m*centro->getx());
    Punto* corte = new Punto(0.0,b,90);

    if (b>0 && velocidad > 0 && v>0)
    {
        float tobstaculo = (centro->distanciaPunto(corte))/(velocidad/3.6);
        Punto* coche = new Punto(0,0,90);
        float tcoche = (coche->distanciaPunto(corte))/(v/3.6);
        if (fabs(tobstaculo-tcoche) > 10)
            TTC = -1;
        else
        {
            if (antiguo!=-1)
                TTC = (tobstaculo + antiguo)/2;
            else TTC = tobstaculo;
            if(TTC-antiguo<0.1)
                TTC=-1;
        }
    }
    else TTC = -1;
}
开发者ID:Dorniak,项目名称:Laser2D,代码行数:30,代码来源:obstaculo.cpp

示例4:

Nodos::Nodos(vector<Nodo*> nds) {
    num_nodos = nds.size();
    num_nodos_validos = nds.size();
    nodos = nds;
    double mx = -1*numeric_limits<float>::max();
    double mix = numeric_limits<float>::max();
    double my = -1*numeric_limits<float>::max();
    double miy = numeric_limits<float>::max();
    double mz = -1*numeric_limits<float>::max();
    double miz = numeric_limits<float>::max();
    for(int i = 0; i < (int)nds.size(); ++i){
        Nodo* n = nds[i];
		if( n!= 0){
		    Punto p = n->getPunto();
		    double x = p.getX();
		    double y = p.getY();
		    double z = p.getZ();
		    if(x>mx) mx = x;
		    if(x<mix) mix = x;
		    if(y>my) my = y;
		    if(y<miy) miy = y;
		    if(z>mz) mz = z;
		    if(z<miz) miz = z;
		}
    }
    this->maxx = mx;
    this->minx = mix;
    this->maxy = my;
    this->miny = miy;
    this->maxz = mz;
    this->minz = miz;

    nodos_marcados = NULL;
}
开发者ID:gurroz,项目名称:Memori,代码行数:34,代码来源:nodos.cpp

示例5: centroide

double Triangulo::distanciaCentroide(Punto p){
    Punto centr = centroide();
    int auxx,auxy;
    auxx = pow((p.getX() - centr.getX()),2);
    auxy = pow((p.getY() - centr.getY()),2);
    return sqrt(auxx+auxy);
}
开发者ID:Nim7,项目名称:PP_Cplus,代码行数:7,代码来源:Triangulo.cpp

示例6: transform

Punto Punto::transform(const Transformacion &t)const
//Devuelve el punto transformado
{
	Punto p;
	for(int i=0;i<4;i++) p.setelem(i,t.row(i)*(*this));
	return p;
}
开发者ID:seiseises,项目名称:gpc_pr2-ModeladoGeometrico,代码行数:7,代码来源:Algebra.cpp

示例7: renderFunction

void renderFunction(){
	glClear(GL_COLOR_BUFFER_BIT); 
	glColor(Color::amarillo);
	for(int i=-radio;i<=radio;i++){
		for(int j=-radio;j<=radio;j++){
			if(i*i+j*j <= radio*radio + radio/2){
				glDraw(centroSol+Punto<double>(i,j));
			}
		}
	}

	for(particula& p: v){
		Punto<double> dist = centroSol - p.posicion;
		double r = dist.norma2();

		p.dibujar();
		p.aceleracion+=(dist)*(1.0/r)*particula::dt*g;
		p.iterar();
	}



	glFlush();
	glutSwapBuffers();
	glutTimerFunc(1, (void(*)(int))renderFunction,0);
}
开发者ID:TachoMex,项目名称:cpp-tacho-tools,代码行数:26,代码来源:particulas.cpp

示例8: main

int main()
{
  Punto* p = new Punto();

  cout<<"("<<p->get_X()<<", "<<p->get_Y()<<")";

  return 0;
}
开发者ID:cslucano,项目名称:CC361LAB6,代码行数:8,代码来源:main.cpp

示例9:

Triangulo::Triangulo(Punto p1,Punto p2,Punto p3, Transformacion t) 
{
	vert=new Punto[3];
	vert[0]= p1.transform(t);
	vert[1]= p2.transform(t);
	vert[2]= p3.transform(t);
	nvertices= 3;
	N= ((vert[1]-vert[0])^(vert[2]-vert[1])).unitary();

}
开发者ID:jobosk,项目名称:Ray-tracer,代码行数:10,代码来源:Primitivas.cpp

示例10: main

int main()
{
    cout << "Prueba C++" <<endl;
    cout << "Constructor Punto" <<endl;
    Punto coordenadas = Punto();
    coordenadas.Mostrar();
    cout << "Constructor de copia Punto" <<endl;
    Punto coordenadas2 = coordenadas;
    coordenadas2.Mostrar();
    cout << "Constructor de copia generado Punto" <<endl;
    Punto coordenadas3 = Punto(coordenadas);
    coordenadas3.Mostrar();
    cout << "Constructor de un solo parametro" <<endl;
    Punto coordenadas4 = Punto(102);
    coordenadas4.Mostrar();
    cout << "Constructor con 2 parametro" <<endl;
    Punto coordenadas5 = Punto(1028,1028);
    coordenadas5.Mostrar();
    cout << "Constructor con 2 parametro con valores por defecto" <<endl;
    Punto coordenadas6 = Punto();
    coordenadas6.Mostrar();
    coordenadas = coordenadas2 = coordenadas4;
    coordenadas.Mostrar();
    coordenadas2.Mostrar();
    cout <<"Operador asignacion"<<endl;
    coordenadas4 = coordenadas5;
    coordenadas4.Mostrar();
    cout <<"Operador << sobrecargado"<<endl;
    cout <<coordenadas4<<endl;
    cout <<"Operador >> sobrecargado"<<endl;
    cin >> coordenadas4;
    cout << coordenadas4 << endl;
    cout <<"Operador ++ (pos) sobrecargado"<<endl;
    coordenadas2 = coordenadas4 ++;
    cout <<"coodenadas2 :" <<coordenadas2 << endl;
    cout <<"coordenadas4 :" << coordenadas4 << endl;
    cout <<"Operador ++ (pre) sobrecargado"<<endl;
    coordenadas3 = ++coordenadas4;
    cout <<"coodenadas3 :" <<coordenadas3 << endl;
    cout <<"coordenadas4 :" << coordenadas4 << endl;
    cout <<"Operador + sobrecargado"<<endl;
    coordenadas6 = coordenadas2 + coordenadas5;
    cout <<"coordenadas6 :"<<coordenadas6<<endl;
    cout <<"Operador - sobrecargado"<<endl;
    coordenadas5 = coordenadas6 - coordenadas2;
    cout <<"coordenadas5 :"<<coordenadas5<<endl;
    cout <<"Operador + sobrecargado con otro objeto a la derecha"<<endl;
    coordenadas2 = coordenadas5 + 7;
    cout <<"coordenadas2 :"<<coordenadas2<<endl;
    cout <<"Operador + sobrecargado con otro objeto a la izquierda"<<endl;
    coordenadas2 = 7 + coordenadas5;
    cout <<"coordenadas2 :"<<coordenadas2<<endl;
    return 0;
}
开发者ID:jorGonzalez29,项目名称:manejoCadenas,代码行数:54,代码来源:main.cpp

示例11: glColor3f

void Poligono::drawWith(const Transformacion &T)const
//Dibuja el poligono solido (como Primitiva)
{	
	Vector Nt = N.transform( !(T.inverse3x3()) );
	glColor3f(color.r(),color.g(),color.b());
	glBegin(GL_POLYGON);
	glNormal3f(Nt.x(),Nt.y(),Nt.z());
	for(int i=0; i< nvertices; i++){
		Punto vertt = vert[i].transform(T);
		glVertex3f(vertt.x(),vertt.y(),vertt.z());
	}
	glEnd();
}
开发者ID:jobosk,项目名称:Ray-tracer,代码行数:13,代码来源:Primitivas.cpp

示例12: main

int main() {
	
	std::cout << "******************************************************************" << std::endl;
	std::cout << "* Ejemplos de Instanciacion de Objetos creados Dinamicamente     *" << std::endl;
	std::cout << "******************************************************************" << std::endl;
	
	std::cout << "Primer ejemplo de Instanciacion de un objeto de la Clase Punto." << std::endl;
	Punto* punto = new Punto(1.5, 6.836423);
	std::cout << "Punto(" << punto->getX() << ", " << punto->getY() << ")" << std::endl << std::endl;
	
	std::cout << "Segundo ejemplo de Instanciacion de un objeto de la Clase Figura." << std::endl;
	Figura* figura = new Figura(4);
	std::cout << "Figura(" << figura->getNumPuntos() << ")" << std::endl << std::endl;
	return 0;
}
开发者ID:wafto,项目名称:Teoria-de-lenguajes,代码行数:15,代码来源:instanciacion_2.cpp

示例13: puntosInterseccion

int Esfera::puntosInterseccion(Punto p, Punto u, float *t) {

	// Vector u = Origen + t*(Destino)
	// t : incognita
	// Q = Origen = p
	// V = Destino  
	// rayo = p + t*u

	bool v = false;
	float t1,t2;

	u.normalizar();

	Punto Q = p - posicion;
	Punto V = u;
	
	float a = V*V;
	float b = 2*(Q*V);
	float c = (Q*Q) - radio*radio;

	//
	// if (v) cerr << "a: "<<a<<" - b: "<<b<<" - c: "<<c<<endl;
	// 
	
	// Cogemos, de las dos soluciones, la negativa, porque es la que antes 
	// intersectará de las dos
	float D = b*b - 4*a*c;
	//
	// if (v) cerr << "D: "<<D<<" " <<sqrt(D)<<endl;
	// 
	if (D < 0) {
		return 0;
	}
	else {
		t1 = (-b - sqrt(D)) / (2*a);
		if (D == 0) {
			*t = t1;
			return 1;
		}
		t2 = (-b + sqrt(D)) / (2*a);
		if (t1 > t2) {
			*t = t2;
			return 1;
		}
		*t = t1;
		return 1;
	}
		//
		// if ((t1 > 0 && t2 <0)) {
		// 	*t = t1;
		// 	return 1;
		// }
		// if ((t1 < 0 && t2>0)) {
		// 	*t = t2;
		// 	return 1;
		// }
		// 
			
	
};
开发者ID:ferblape,项目名称:raytracer,代码行数:60,代码来源:Primitiva.cpp

示例14: scale

Transformacion Transformacion::scale(float sx,float sy,float sz, Punto centro)
//Acumula el escalado sobre un punto generico
{
	Matriz s;
	translation(centro);
	s.setelem(0,0,sx); s.setelem(1,1,sy); s.setelem(2,2,sz);
	append(s);
	return translation(centro.negated());
}
开发者ID:seiseises,项目名称:gpc_pr2-ModeladoGeometrico,代码行数:9,代码来源:Algebra.cpp

示例15: RGB

Focalizada::Focalizada(Punto centro_, Punto direccion_, float factor_) {

		centro = centro_; 	
		factor = factor_;
		direccion = direccion_.normalizar();
		i = RGB(1,1,1); 		
		n = 200; 
		tipo = FOCALIZADA;
}
开发者ID:ferblape,项目名称:raytracer,代码行数:9,代码来源:FuenteLuminosa.cpp


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