Advertisement
lerakaneva

Untitled

Dec 28th, 2022 (edited)
1,071
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. /*> положим time_resol = 4 мс
  2. >  Допустим, в Вашей модели шаг по времени dt мкс
  3. Положим freq = 4000 мкс / dt. То есть freq - сколько шагов по времени укладывается в time_resol  4мс.
  4. > Допустим, x_start - координата начала подложки, dx_to_stable = 3мкм , и вы считаете, что тромбоцит уже катится "стабильно", с постоянной средней за секунду скоростью, начиная с координаты x_crit = x_start = dx_to_stable (то, про что в п. 1 я писала)
  5. > пусть s - номер итерации по времени в Вашем коде
  6. > x_prev - координата на предыдущем кадре. Допустим, вы инициализировали ее отрицательным числом для начала
  7. > time_stops - список времен остановки - для начала он пустой
  8. > frames_stop - сколько кадров постоянная координата
  9. > x_resol = 0.2 мкм
  10. */
  11.  
  12. if (s % freq == 0) { // т.е. каждую freq по счету итерацию
  13.     if (x_platelet > x_crit) { // стационарное качение
  14.         if (x_prev > 0 ) { // это не первый кадр
  15.             if (abs(x - xprev) < x_resol) {// тромбоцит не катится
  16.                 frames_stop += 1; // увеличиваем число кадров, когда тромбоцит не движется
  17.             } else { // тромбоцит катится
  18.                 if (frames_stop > 0) { // до этого тромбоцит стоял - надо запомнить время оставки
  19.                     time_stops.push_back(frames_stop * time_resol);  // запомнили это время остановки
  20.                     frames_stop = 0; // "сбрасываем" кол--во кадров, ведь тромбоцит теперь катится
  21.                 }
  22.             }
  23.         }
  24.         x_rev = x; // сохранили координату
  25.     }
  26. }
  27.  
  28. //А потом вне цикла по времени нужно посчитать среднее по time_stops
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement