本文整理汇总了C++中Nodo::getConcentracion方法的典型用法代码示例。如果您正苦于以下问题:C++ Nodo::getConcentracion方法的具体用法?C++ Nodo::getConcentracion怎么用?C++ Nodo::getConcentracion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nodo
的用法示例。
在下文中一共展示了Nodo::getConcentracion方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: moverNodoSegunConcentracion
void Nodos::moverNodoSegunConcentracion(int indice, double val) {
if(indice == -1) {
return;
}
if(indice >= (int)nodos.size() || indice < 0) {
cout << "Error: Moviendo Nodo(" << indice << "). Numero de nodos = " << nodos.size() << endl;
assert((indice < (int)nodos.size()) && (indice >= 0));
}
Nodo *n = nodos[indice];
//movemos el nodo una distancia dist.
if(n != 0) {
Vect *normal = n->getNormal();
if(normal != 0) {
n->getPunto()->setX(n->getPunto()->getX()+normal->getPunto().getX()*val*n->getConcentracion());
n->getPunto()->setY(n->getPunto()->getY()+normal->getPunto().getY()*val*n->getConcentracion());
n->getPunto()->setZ(n->getPunto()->getZ()+normal->getPunto().getZ()*val*n->getConcentracion());
}
}
}
示例2: regresarNodoSegunConcentracion
void Nodos::regresarNodoSegunConcentracion(int indice, double val) {
if(indice == -1) {
return;
}
if(indice >= (int)nodos.size() || indice < 0) {
cout << "Error: Regresando Nodo(" << indice << "). Numero de nodos = " << nodos.size() << endl;
assert((indice < (int)nodos.size()) && (indice >= 0));
}
Nodo *n = nodos[indice];
//regresamos el nodo una distancia dist.
double x,y,z;
if(n != 0) {
Vect normal = n->getNormal();
if(normal.largo() > 0) {
x=n->getPunto().getX()-normal.getPunto().getX()*val*n->getConcentracion();
y=n->getPunto().getY()-normal.getPunto().getY()*val*n->getConcentracion();
z=n->getPunto().getZ()-normal.getPunto().getZ()*val*n->getConcentracion();
n->setPunto(Punto(x,y,z));
}
}
}
示例3: aplicar
void AlmacenaToMllDebug::aplicar(Malla *malla, string filename){
//Lineas necesarias para que scanf lea archivo en computadores seteados en otro lenguaje.
setlocale(LC_NUMERIC, "POSIX");
FILE *archivoSalida = fopen(filename.c_str(),"w");
fprintf(archivoSalida,"MLL (Debug file)\n");
fprintf(archivoSalida,"%d %d %d\n",malla->getMaxIndiceNodos()+1,malla->getMaxIndiceCaras()+1,malla->getMaxIndiceArcos()+1);
fprintf(archivoSalida,"%d %d %d\n",malla->getNumNodos(),malla->getNumCaras(),malla->getNumArcos());
Nodo *nodo;
Vect normal;
cout << "Recorriendo Nodos" << endl;
for(int i=0; i<=malla->getMaxIndiceNodos(); i++) {
nodo = malla->getNodo(i);
if(nodo == 0) {
fprintf(archivoSalida,"Nodo{%d}=Vacio \n",i);
}
else {
fprintf(archivoSalida,"Nodo{%d}=(%f,%f,%f) ",i,nodo->getPunto().getX(),nodo->getPunto().getY(),nodo->getPunto().getZ());
vector<int> caras = nodo->getCaras();
vector<int> arcos = nodo->getArcos();
fprintf(archivoSalida,"Caras{");
for(int j=0; j<(int)caras.size(); j++) {
fprintf(archivoSalida,"%d",caras[j]);
if(j<(int)caras.size()-1) {
fprintf(archivoSalida,",");
}
}
fprintf(archivoSalida,"} Arcos{");
for(int j=0; j<(int)arcos.size(); j++) {
fprintf(archivoSalida,"%d",arcos[j]);
if(j<(int)arcos.size()-1) {
fprintf(archivoSalida,",");
}
}
fprintf(archivoSalida,"} ");
normal = malla->getNodo(i)->getNormal();
fprintf(archivoSalida,"Normal=(%f,%f,%f) ",normal.getPunto().getX(),normal.getPunto().getY(),normal.getPunto().getZ());
fprintf(archivoSalida,"Concentracion={%f}",nodo->getConcentracion());
fprintf(archivoSalida,"\n");
}
}
cout << "Pasamos nodos" << endl;
Arco *a;
for(int i=0; i<=malla->getMaxIndiceArcos(); i++) {
a = malla->getArco(i);
//si se elimino un arco, puede que en esa posicion exista un puntero igual a 0, por eso nos aseguramos que el arco sea distinto de 0.
if(a == 0) {
fprintf(archivoSalida,"Arco{%d} Vacio\n",i);
}
else {
fprintf(archivoSalida,"Arco{%d} Nodos{%d,%d} Caras{%d,%d}\n",i,a->getNodo1(),a->getNodo2(),a->getCara1(),a->getCara2());
}
}
Cara *c;
vector<int> ind_nodos;
vector<int> ind_arcos;
for(int i=0; i<=malla->getMaxIndiceCaras(); i++) {
c = malla->getCara(i);
//si se elimino una cara, puede que en esa posicion exista un puntero igual a 0, por eso nos aseguramos que la cara sea distinta de 0.
if(c == 0) {
fprintf(archivoSalida,"Cara{%d} Vacia\n",i);
}
else {
ind_nodos = c->getNodos();
ind_arcos = c->getArcos();
fprintf(archivoSalida,"Cara{%d} %d ",i,c->getNumElem());
fprintf(archivoSalida,"Nodos{");
double conc_prom = 0;
for(int j=0; j<(int)ind_nodos.size(); j++) {
conc_prom = conc_prom + malla->getNodo(ind_nodos[j])->getConcentracion();
fprintf(archivoSalida,"%d",ind_nodos[j]);
if(j<(int)ind_nodos.size()-1) {
fprintf(archivoSalida,",");
}
}
fprintf(archivoSalida,"} ");
fprintf(archivoSalida,"Arcos{");
for(int j=0; j<(int)ind_arcos.size(); j++) {
if(malla->getArco(ind_arcos[j]) != 0) {
fprintf(archivoSalida,"%d:%d-->%d",ind_arcos[j],malla->getArco(ind_arcos[j])->getNodo1(),malla->getArco(ind_arcos[j])->getNodo2());
if(j<(int)ind_arcos.size()-1) {
fprintf(archivoSalida,",");
}
}
}
fprintf(archivoSalida,"} ");
Vect normal = c->getNormal(malla);
fprintf(archivoSalida,"Normal=(%f,%f,%f) ",normal.getPunto().getX(),normal.getPunto().getY(),normal.getPunto().getZ());
fprintf(archivoSalida,"Concentracion=%f",conc_prom);
fprintf(archivoSalida,"\n");
}
}
fclose(archivoSalida);
//.........这里部分代码省略.........
示例4: aplicar
void AlmacenaToXYZU::aplicar(Malla *malla, string filename){
//Lineas necesarias para que scanf lea archivo en computadores seteados en otro lenguaje.
setlocale(LC_NUMERIC, "POSIX");
int posextension=filename.rfind(".");
string nombrefile=filename.substr(0,posextension);
string extension=filename.substr(posextension+1,filename.length());
if (posextension==0){
nombrefile=filename;
extension="txt";
}
stringstream archivox;
stringstream archivoy;
stringstream archivoz;
stringstream archivou;
archivox << nombrefile << "_nx." << extension;
archivoy << nombrefile << "_ny." << extension;
archivoz << nombrefile << "_nz." << extension;
archivou << nombrefile << "_u." << extension;
FILE *archivo_x = fopen(archivox.str().c_str(),"w");
FILE *archivo_y = fopen(archivoy.str().c_str(),"w");
FILE *archivo_z = fopen(archivoz.str().c_str(),"w");
FILE *archivo_u = fopen(archivou.str().c_str(),"w");
char separador1[32] = "% Coordinates\n";
fprintf(archivo_x,"%s",separador1);
fprintf(archivo_y,"%s",separador1);
fprintf(archivo_z,"%s",separador1);
fprintf(archivo_u,"%s",separador1);
Nodos *nds = malla->getNodos();
Caras *crs = malla->getCaras();
Nodo *nodo;
int* nuevoIndiceNodos=new int[nds->getNumNodos()];
int nlinea=0;
for(int i=0; i<nds->getNumNodos(); i++) {
nodo = nds->getNodo(i);
if(nodo != NULL) {
fprintf(archivo_x,"%f %f %f\n",nodo->getPunto()->getX(),nodo->getPunto()->getY(),nodo->getPunto()->getZ());
fprintf(archivo_y,"%f %f %f\n",nodo->getPunto()->getX(),nodo->getPunto()->getY(),nodo->getPunto()->getZ());
fprintf(archivo_z,"%f %f %f\n",nodo->getPunto()->getX(),nodo->getPunto()->getY(),nodo->getPunto()->getZ());
fprintf(archivo_u,"%f %f %f\n",nodo->getPunto()->getX(),nodo->getPunto()->getY(),nodo->getPunto()->getZ());
nuevoIndiceNodos[i]=nlinea;
nlinea++;
}
}
char separador2[32] = "% Elements (triangular)\n";
fprintf(archivo_x,"%s",separador2);
fprintf(archivo_y,"%s",separador2);
fprintf(archivo_z,"%s",separador2);
fprintf(archivo_u,"%s",separador2);
Cara *c;
vector<int> ind_nodos;
for(int i=0; i<crs->getNumCaras(); i++) {
c = crs->getCara(i);
if(c != 0) {
ind_nodos = c->getNodos();
fprintf(archivo_x,"%d %d %d\n",nuevoIndiceNodos[ind_nodos[0]]+1,nuevoIndiceNodos[ind_nodos[1]]+1,nuevoIndiceNodos[ind_nodos[2]]+1);
fprintf(archivo_y,"%d %d %d\n",nuevoIndiceNodos[ind_nodos[0]]+1,nuevoIndiceNodos[ind_nodos[1]]+1,nuevoIndiceNodos[ind_nodos[2]]+1);
fprintf(archivo_z,"%d %d %d\n",nuevoIndiceNodos[ind_nodos[0]]+1,nuevoIndiceNodos[ind_nodos[1]]+1,nuevoIndiceNodos[ind_nodos[2]]+1);
fprintf(archivo_u,"%d %d %d\n",nuevoIndiceNodos[ind_nodos[0]]+1,nuevoIndiceNodos[ind_nodos[1]]+1,nuevoIndiceNodos[ind_nodos[2]]+1);
}
}
char separador_x[32] = "% Data (nx)\n";
char separador_y[32] = "% Data (ny)\n";
char separador_z[32] = "% Data (nz)\n";
char separador_u[32] = "% Data (u)\n";
fprintf(archivo_x,"%s",separador_x);
fprintf(archivo_y,"%s",separador_y);
fprintf(archivo_z,"%s",separador_z);
fprintf(archivo_u,"%s",separador_u);
for(int i=0; i<nds->getNumNodos(); i++) {
nodo = nds->getNodo(i);
// cout << nodo->imprimir() << endl;
if(nodo != NULL) {
fprintf(archivo_x,"%f\n",nodo->getNormal()->getPunto().getX());
fprintf(archivo_y,"%f\n",nodo->getNormal()->getPunto().getY());
fprintf(archivo_z,"%f\n",nodo->getNormal()->getPunto().getZ());
fprintf(archivo_u,"%f\n",nodo->getConcentracion());
}
}
delete nuevoIndiceNodos;
fclose(archivo_x);
fclose(archivo_y);
fclose(archivo_z);
fclose(archivo_u);
//.........这里部分代码省略.........