Я плохо разбираюсь в математике и имею дело с конкретной проблемой рисования графиков на холсте html5.
Учитывая, что у меня есть:
- диапазон цен между минимальной и максимальной ценой, который мне нужно поставить по оси Y
- Определенное количество «ведер»в котором можно разделить этот ценовой диапазон.
Например, у меня могут быть исторические цены на биткойны:
- Минимальная цена 2939,7
- Максимальная цена 4380
- 9 ведер для заполнения
Эти цены, однако, могут быть совершенно разными, поэтому существует определенный порядок величины:
- раунд на 500
- раунд на100
- раунд на 50
- раунд на 25
- раунд на 10
- раунд на 5
- раунд на 2,5 или 2
- раунд на 1
- раунд на 0,5
- раунд на 0,25 или 0,20
- раунд на 0,10
Если бы мне пришлось увеличитьНа карте количество блоков не изменится, но уровень цен изменится.
Хороший пример того, чего я хочу достичь, это что-то вроде TradingView: https://www.tradingview.com/chart/SsrQxrf0/
Но уменьшено:
У них есть способ даже динамически растягивать эти ведра.
Я думал об этом, но это действительно вызывает у меня опухоль головного мозга ...
Чтоправильный подход, чтобы начать на этом?
Я стараюсь, чтобы моя базовая стратегия была простой:
- Определите количество пикселей для использования на группу и рассчитайте nr блоков на основе размера холста;
- Найдите общий диапазон цен, который нужно отобразить, и определите цену за ведро путем простого деления: разница в цене между минимальным и максимальным / количественным значением ведра;
- Теперь, как отобразить эти цены в красиво округленных сегментах?
В моем примере у меня был бы ценовой диапазон около 113,7 за ведро.
Но я понятия не имею, как использовать эту информацию, чтобы получить желаемый результат, а именноприятно вокруг этих ведер.
Любые советы по стратегиям приветствуются.