Начальная точка в системах координат - PullRequest
3 голосов
/ 10 января 2012

У меня следующий php-код:

<?php

$image = imagecreatefrompng("captcha_background.png");

$imgcolor = imagecolorallocate($image, 0, 0, 0);

imagesetthickness($image, 2);

imageline($image, 0, 25, 40, 90, $imgcolor);

?>

Метод "imageline" рисует прямую линию на моем изображении с координатами от 0 (x) 25 (y) до 40 (x) 90 (y).

В результате получается следующее изображение:

Что меня смущает, так это обратная сторона дна и вершины при использовании систем координат вPHP.Обычно 0 (начальная точка) находится в нижнем левом углу, но при назначении координат в методе «imageline» 0 (начальная точка) находится в верхнем левом углу?

Ожидаемый результат:

(изображение 300x100 пикселей)

Может кто-нибудь объяснить, почему это происходит?

Ответы [ 3 ]

3 голосов
/ 10 января 2012

Это не математический график. Типичная система координат, используемая в разработке (насколько я знаю), должна иметь первый квадрант внизу справа. То есть 0x0 вверху слева. Это относится ко всем html-элементам, имеющим ширину и высоту (элементы выпадают, они не выпадают).

Мотивация заключается в том, что трудно определить, с какой высотой вам приходится работать, не зная абсолютной высоты изображения, которую вы можете не знать в любой момент времени и которая может часто меняться.

2 голосов
/ 10 января 2012

Так определяются координаты в GD, не о чем беспокоиться.

http://www.php.net/manual/en/function.imagedashedline.php:

y1: верхняя левая координата y 0, 0 - верхний левый угол изображения.

0 голосов
/ 10 января 2012

Я считаю, что это стандарт для библиотеки изображений GD, поскольку они определяют естественное происхождение как верхний левый угол.

...