User 13204940 Ответов: 0

Вычисление расстояния по диагонали y=x в PHP


Привет,

Представьте себе, что у меня есть квадрат с диагональной линией от нижнего левого до верхнего правого угла. Учитывая любую точку (x,y), я хочу быть в состоянии определить, как далеко вдоль этой линии находится точка. Это происходит потому, что я хочу создать цветовой градиент от одного цвета к другому, от нижнего левого до верхнего правого квадрата.

Это изображение отображает мою работу здесь;

Учитывая произвольную точку (90,50), я полагаю, что должен вычислить, где гипотенуза сформированного треугольника начинается вдоль гипотенузы квадрата. Точка находится непосредственно по диагонали, поэтому она соответствует положению z вдоль гипотенузы квадрата.

Поэтому я должен быть в состоянии сделать следующее, чтобы сгенерировать значение RGB:

$r = self::map(hypot($y, $y) + (hypot($x, $y) / 2), 0, hypot($imgW, $imgH), 0, 255);
$c = ImageColorAllocate($base_image, 0, $r, $r);

путем отображения от 0 до длины гипотенузы, до 0-255.

Не мог бы кто-нибудь помочь мне понять, почему выход такой здесь[^]?

Есть две проблемы: градиент совершенно неправильный, и есть несколько черных пикселей в правом нижнем углу, которые, по-видимому, решили не участвовать в этом коде.

Что я уже пробовал:

----------------------------------------------------

0 Ответов