本文整理汇总了C++中PV3D::productoVectorial方法的典型用法代码示例。如果您正苦于以下问题:C++ PV3D::productoVectorial方法的具体用法?C++ PV3D::productoVectorial怎么用?C++ PV3D::productoVectorial使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PV3D
的用法示例。
在下文中一共展示了PV3D::productoVectorial方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: vNormal
PV3D* MontanaRusa::vNormal(GLfloat t){
PV3D* bin = vBinormal(t);
PV3D* tang = vTangente(t);
PV3D* norm = bin->productoVectorial(tang);
norm->normaliza();
return norm;
}
示例2: creaTuboFrenet
void MontanaRusa::creaTuboFrenet(){
//Lo multiplicamos por el numero de vueltas
GLfloat intervalo = 2*M_PI*2/NQ;
PV3D** vertices = getVertices();
//Construimos los vertices de cada cara del tubo
for(int i=0; i<NQ; i++){
GLfloat valor = i*intervalo;
PV3D* T = primeraDerivada(valor);
T->normaliza();
PV3D* B = primeraDerivada(valor)->productoVectorial(segundaDerivada(valor));
B->normaliza();
PV3D* N = B->productoVectorial(T);
PV3D* C = funcion(valor);
for(int j=0; j<NP; j++){
int indiceVertice = NP*i+j;
PV3D* vertice = perfil[j]->multiplicaMatriz(N,B,T,C);
vertices[indiceVertice] = vertice;
}
}
//Construimos las caras
for(int i=0; i<NQ; i++){
for (int j=0; j<NP; j++){
int indiceCara = NP*i+j;
caras[indiceCara] = new Cara(4);
VerticeNormal** normalesCara = new VerticeNormal*[4];
int verticeBase = indiceCara;
int v0 = verticeBase % (NP*NQ);
int v1 = sucesor(verticeBase % (NP*NQ));
int v2 = (sucesor(verticeBase)+NP) % (NP*NQ);
int v3 = (verticeBase + NP) % (NP*NQ);
normalesCara[0] = new VerticeNormal(v0,indiceCara);
normalesCara[1] = new VerticeNormal(v1,indiceCara);
normalesCara[2] = new VerticeNormal(v2,indiceCara);
normalesCara[3] = new VerticeNormal(v3,indiceCara);
caras[indiceCara]->addVerticeNormal(normalesCara);
}
}
//Calculamos las normales de cada cara
for(int i=0; i<numCaras; i++){
normales[i] = CalculoVectorNormalPorNewell(caras[i]);
}
}
示例3: dibujaCoche
void MontanaRusa::dibujaCoche(){
GLfloat movimiento = coche->getMovimiento();
PV3D* T = primeraDerivada(movimiento);
T->normaliza();
PV3D* B = primeraDerivada(movimiento)->productoVectorial(segundaDerivada(movimiento));
B->normaliza();
PV3D* N = B->productoVectorial(T);
PV3D* C = funcion(movimiento);
GLfloat m[] = { N->getX(), N->getY(), N->getZ(), N->isPoint(),
B->getX(), B->getY(), B->getZ(), B->isPoint(),
T->getX(), T->getY(), T->getZ(), T->isPoint(),
C->getX(), C->getY(), C->getZ(), C->isPoint()};
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glMultMatrixf(m);
coche->dibuja();
glPopMatrix();
}