Отключить логику индикатора выполнения - PullRequest
0 голосов
/ 07 апреля 2019

Мой индикатор выполнения:

https://imgur.com/M6S3xkA

Проблема:

Как видите, это не обычный индикатор выполнения, логика для меня неясна.

Скажем, когда у вас ~ 30 очков (из 1000) , у вас должно быть 50% в индикаторе прогресса, но как считать это магическое число?

В обычном случае с 30 очками (из 1000) у вас должно быть около 5%.

Я буду рад любым подсказкам!

1 Ответ

0 голосов
/ 07 апреля 2019

Вы должны рассчитать прогресс на основе ЧАСТЕЙ, которые вы разделили.В вашем случае вы разделяете диапазон на 5 частей.

  • Шаг 1: Найдите, в какой части находится текущая точка. (Если точка 30, она состоит из 2 частей - (0..3) и (3..20))
  • Шаг 2: Найти, какой процент от точки в текущей части (если точка равна 30, текущая часть равна (20 ... 50) -> процент = (30 - 20) / (50 - 20) = 0,333
  • Шаг 3: Объедините их и разделите номер детали.

Пример кода:

PARTS = [(0..3), (3..20), (20..50), (50..200), (200..1000)]
PARTS_NUMBER = PARTS.size   # 5

def calculate_percentage point
  part_index = PARTS.find_index {|x| x.include?(point)}
  part = PARTS[part_index]
  remain = (point - part.first) * 1.0 / (part.last - part.first)
  (part_index + remain) / PARTS_NUMBER
end

calculate_percentage(30)  # => 0.4666666666666667

Надеюсь, это поможет: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...