/** * 自由端の場合、質点にはたらく力を計算します。 */ void updateForceFreeEnd(){ float force; // 質点にかかる力の計算 for(int i=0; i<Y_N; i++){ for(int j=0; j<X_N; j++){ // バネからかかる力 force = 0.0; // X方向に隣接する質点とのバネからかかる力 if(j != 0){ force += getForce(vertex[i][j-1][Z], vertex[i][j][Z], TENSION, DX); } if(j != X_N-1){ force += getForce(vertex[i][j+1][Z], vertex[i][j][Z], TENSION, DX); } // Y方向に隣接する質点とのバネからかかる力 if(i != 0){ force += getForce(vertex[i-1][j][Z], vertex[i][j][Z], TENSION, DY); } if(i != Y_N-1){ force += getForce(vertex[i+1][j][Z], vertex[i][j][Z], TENSION, DY); } // バネからかかる力 + 減衰力 = 質点にかかる力 vertexFZ[i][j] = force - FRICTION * vertexVZ[i][j]; } } }