使用 PHP 5.0创建图形的巧妙方法
时间:2010-10-04 来源:langshen
转自:http://www.qzsou.cn/aWangLuo/aPhp/54986.html
本文将展示如何使用 PHP 构建面向对象(的)图形层。使用面向对象(的)系统可以用来构建复杂(的)图形,这比使用标准 PHP 库中所提供(的)基本功能来构建图形简单(很)多。
我将图形编辑程序分为两类:一类(是)绘图程序,利用这种程序可以一个像素一个像素(地)绘制图像;另外一类(是)制图程序,这种程序提供了一组对象,例如线、椭圆和矩形,您可以使用这些对象来组合成一幅大图像,例如 JPEG。绘图程序非常适合进行像素级(的)控制。但(是)对于业务图形来说,制图程序(是)比较好(的)方式,因为大部分图形都(是)由矩形、线和椭圆组成(的)。
PHP 内置(的)制图基本操作与绘图程序非常类似。它们对于绘制图像来说功能非常强大;但(是)如果您希望自己(的)图像(是)一组对象集合时,这(就)不太适合了。本文将向您展示如何在 PHP 图形库(的)基础上构建一个面向对象(的)图形库。您将使用 PHP V5 中提供(的)面向对象(的)扩展。
具有面向对象(的)图形支持之后,您(的)图形代码(就)非常容易理解和维护了。您可能还需要从一种单一(的)图形源将图形合成为多种类型(的)媒介:Flash 电影、SVG 等等。
目标
创建一个图形对象库包括 3 个主要(的)目标:
从基本操作切换到对象上
它不使用 imageline、imagefilledrectangle 以及其他图形函数,这个库应该提供一些对象,例如 Line、Rectangle 和 Oval,它们可以用来制作图像。它应该还可以支持构建更大(的)复杂对象或对对象进行分组(的)功能。
可以进行 z 值排序
制图程序让画家可以在画面表面上上下移动图形对象。这个库应该可以支持将一个对象放到其他对象前后(的)功能:它使用了一个 z 值,用来定义对象从制图平面开始(的)高度。z 值越大(的)对象被画(得)越晚,(也就)出现在那些 z 值较小(的)对象之上。