您怎么看,这不是常规的进度条,对于我来说逻辑尚不清楚。
比方说-当您获得30分(从1000分起)时,进度条应该有50%, 但是如何计算这个魔幻数字?
通常情况下,满分30分(从1000分开始),您的得分应为<5%。
任何线索我都会高兴!
答案 0 :(得分:0)
您应该根据划分的PARTS计算进度。在您的情况下,您将范围分为5个部分。
示例代码:
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