Как задать свои минимальные значения от которых начнётся Canvas?
Всем привет, делаю график для отображения курса крипты, значения приходят с сервера, в виде массива с числами от единиц до сотен тысяч. Можно ли внутри канвас сделать свои размеры, чтобы все значения помещались и корректно отображались?
UPD: Мне надо, чтобы я как-то мог сам установить минимальные и максимальные значения. просто если в график попадают большие значения, canvas строит график с нулевой координаты, а мне надо с минимальной по массиву(это я сам найду). Вопрос в том, как добавить минимальные и максимальные значения от которых график начнёт строиться
Вадим, по дефолту в канвасе, вроде около 300х150 пикселей. Я погуглил, попытался увеличить высоту через ctx.canvas.height , т.к. это Y, но графики нормально не отображаются. Я бы хотел условно чтобы визуально он был не большой, а внутри могли помещаться большие значения.
это график без добавлений высоты и ширины с значениями от 0 до 120. Построился нормально
Второй график, где идут значения 20000+. Построился не очень
В процессе пока писал ответ и делал скриншоты, понял, что мне надо, чтобы я как-то мог сам установить минимальные и максимальные значения. просто если в график попадают большие значения, canvas строит график с нулевой координаты, а мне надо с минимальной по массиву(это я сам найду). Вопрос в том, как добавить минимальные и максимальные значения от которых график начнёт строиться
Вадим, https://ru.wikipedia.org/wiki/Canvas_(HTML) , https://doka.guide/html/canvas/ , по поводу размера, первое что нашёл. А так сделаю конечно демку, но вопрос в том, можно ли задать минимальное значение от которого начнётся график? Чтобы начинался не с 0 координаты по Y, а с определённой, например 1000, 10000 и т.д.
AndreyVolkov72, а, ну так это если никаких параметров не задано для канваса, но это тут должно быть совершенно не причём. Вы же сами можете установить нужные параметры.
По поводу графика - Ваш же график. Делайте с ним что хотите. Вы продолжаете задавать вопрос на которых ответ очень асбтрактный. Можно? Можно.
Вы используете какукую то библиотеку? Нет информации.
Как написан код - нет информации.
И так далее.
Очень просто: использовать масштабирование и т.н. "плавающее окно". Делать канвас больше размера окна нет смысла - все равно не будет ничего рендериться, а производительность упадет. На канвасе отображать только то, что видно пользователю в его масштабе. Например, у пользователя окно 1000*500 и канвас такой же. Пытаться рендерить на канвасе больше точек, чем там есть пикселей нет никакого смысла. Вместо этого строится новый график с новыми точкам в соответствии с масштабом. Все, что за пределами видимого - не рендерится и не считается. Для ускорения прокрутки делается расчет графика на двойной или тройной размер экрана - т.е. экран или половина слева и так же справа, а рендерится середина. Т.о., можно сделать плавную и красивую прокрутку без тормозов на новый расчёт графика по 20 раз в секунду.