Я работаю над графическим классом (в javascript), который использует canvas. Это только для экспериментальных / учебных целей. В настоящее время график корректно масштабируется в зависимости от высоты и ширины холста. Это не проблема, и вот в основном то, что я делаю, чтобы построить правильные координаты [псевдокод].
point[0] = [10, 15]
point[1] = [20, 10]
point[2] = [30, 20]
point[3] = [40, 15]
canvas width = 300
max x = 40
so for any given point:
position x = ( point[i][0] / max x ) * canvas width
достаточно просто. Я получаю соотношение, а затем умножаю его на ширину холста, чтобы построить его в правильном пикселе.
Проблема, однако, состоит в том, чтобы придумать уравнение, которое заставило бы минимальное значение x находиться в 0 на координате x графика, а максимальное значение - в максимальной точке графика (которое уже делает из-за отношения 1: 1 в моем текущем уравнении). В настоящее время минимальное значение x (в данном примере 10) находится в 75px в координате x, поскольку отношение 1: 4 умножается на ширину холста.
tldr / summary: Мне нужно составить график, на котором минимальное значение отображается в начале графика (0,0), а максимальное значение - до конца.