Мне нужен совет по математике ... Или, по крайней мере, я так думаю.
У меня есть набор элементов в моей базе данных, который представляет объекты (например, физические объекты) с позицией (x, y, z). Эти позиции могут быть абсолютно случайными, как объект A имеет позицию 1532, 3512, 1500, а B имеет позицию 2421, 4612, 1234.
Я пытаюсь создать графическую карту (используя CSS) объектов в 2D. Таким образом, используются только координаты X и Y. Карта, на которой я хочу рисовать, имеет определенную ширину и высоту. Теперь вот сложная часть: я хочу, чтобы карта масштабировалась в соответствии с размером карты. Например, когда есть 2 объекта, один из которых находится по координатам: 1,1, а другой по координатам 3,3, я хочу, чтобы один объект находился в верхнем левом углу карты, а другой - в правом нижнем.
Итак, вот пример моих элементов (объектов):
database elements:
- [1] => x: 1254, y: 1642
- [2] => x: 2311, y: 2361
- [3] => x: 1732, y: 2351
- [4] => x: 1436, y: 3323
Сначала я беру минимальные и максимальные значения этих элементов, чтобы создать формулу, которая позволяет координатам начинаться с 0,0 и идти оттуда.
Итак, допустим, минимальное значение x в этом примере равно 1254, а Y равно 1642.
Я вхожу в цикл и делаю следующее:
foreach( $this->db as $item )
{
$x = $this->value_x_max - $item['x'];
$y = $this->value_y_max - $item['y'];
}
Размер карты 720х480 пикселей. Как мне создать формулу, которая распределяет мои объекты по карте. Важно, чтобы объекты не выходили за границы карты, но также должны быть распределены. Так, например, если 2 объекта имеют позиции 1,1 и 1,2, они должны находиться в верхнем левом и нижнем левом углах.
Может кто-нибудь помочь мне с этим?
Любая помощь и совет ценится!