坐标系中的起点

时间:2012-01-10 14:03:29

标签: php coordinate-systems

我有以下php代码:

<?php

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

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

imagesetthickness($image, 2);

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

?>

方法&#34; imageline&#34;在我的图像上从坐标0(x)25(y)到40(x)90(y)绘制一条直线。

结果如下图所示:

当我在php中使用坐标系时,我感到困惑的是底部和顶部的反转。 通常0(起点)位于左下角,但是在方法&#34; imageline&#34;中分配坐标时0(起点)位于左上角?

预期结果:

(图像为300x100像素)

有人可以解释为什么会这样吗?

3 个答案:

答案 0 :(得分:3)

这不是数学图表。开发中使用的典型坐标系统(据我所知)是在右下方有第一个象限。也就是说,0x0位于左上角。这适用于所有具有宽度和高度的html元素(元素下拉,它们不会下降)。

动机似乎是这样一个事实,即在不知道图像的绝对高度的情况下很难分辨你需要多少高度,这在任何给定时间都可能不知道,而且可能经常发生变化。

答案 1 :(得分:2)

这就是如何在GD中定义坐标,无需担心。

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

  

y1:左上角y坐标0,0是图像的左上角。

答案 2 :(得分:0)

我相信这是GD图像库的标准,因为它们将自然原点定义为左上角。