@elenapetrova1995

Как привести массив к нежному виду?

Всем привет!
Не соображаю как правильнее и оптимальнее сделать такую задачу.
У меня есть функция которая рисует график, размеры картинки итоговой допустим 400 на 200.
Есть массив чисел, который содержит координаты по Х. Координаты по Y не берем в учет задачи.
Сама задача:
Чтобы нарисовать график мне нужно рисовать концы прямых по координатам из массива, но там числа огромные, больше чем высотка картинки.
Нужно массив с этими числами переобразовать в процентное соотношение к размерам картинки будущей. Надеюсь я правильно выразилась)
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
@lolzqq
HTML,CSS,JS,PHP
400px - ширина области отрисовки
максимальное значение координаты X в массиве возьмём за 100% = 1/1 = 1 (обозначим, как Макс_Величина)
Макс_величина
величину остальных координат (обозначим как Величина) выражаем в процентах, как Величина/Макс_Величина - они будут дробями.
Далее при отрисовке вы эти дроби перемножаете на 400 - чтобы получить абсолютные значения.

Типа такого:
<!doctype html>
<html lang="ru">
<head>
  <meta charset="utf-8" />
  <title></title>
  
</head>
<body>
<?php
$arr=[100,600,400,220,130,50];

echo 'исходный массив<div>';
for($i=0;$i<=count($arr)-1;$i++){
	echo '['.$arr[$i].']';
}
echo '</div>';
$max_width=400;
$max_el=max($arr);

echo 'результат<div>';
for($i=0;$i<=count($arr)-1;$i++){
	$arr[$i]=$arr[$i]/$max_el*400;
	echo '['.$arr[$i].']';
}
echo '</div>';
?>
</body>
</html>

На выходе
исходный массив
[100][600][400][220][130][50]
результат
[66.7][400][266.7][146.7][86.7][33.3]

Нежнее не получилось.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы