正 文

使用PHP 5.0创建图形的巧妙方法


www.7dspace.com  更新日期:2006-1-13 1:25:50  七度空间


  清单 4. 更新后的测试代码

<?php
require_once( "glib.php" );

function zsort( $a, $b )
{
  if ( $a->z() < $b->z() ) return -1;
  if ( $a->z() > $b->z() ) return 1;
  return 0;
}

$ge = new GraphicsEnvironment( 400, 400 );

$ge->addColor( "black", 0, 0, 0 );
$ge->addColor( "red", 255, 0, 0 );
$ge->addColor( "green", 0, 255, 0 );
$ge->addColor( "blue", 0, 0, 255 );

$gobjs = array();
$gobjs []= new Oval( 100, "red", 50, 50, 150, 150 );
$gobjs []= new Rectangle( 200, "black", 100, 100, 300, 300 );

usort( $gobjs, "zsort" );

foreach( $gobjs as $gobj ) { $gobj->render( $ge ); }

$ge->saveAsPng( "test.png" );
?>

  此处需要注意两件事情。首先是我们添加了创建 Oval 和 Rectangle 对象的过程,其中第一个参数是 z 值。其次是调用了 usort,它使用了 zsort 函数来对图形对象根据 z 值进行排序。

  在运行这个程序时,test.png 文件应该如图 5 所示。

  图5. 红圆在黑方框之后

红圆在黑方框之后

  现在修改下面的代码:

$gobjs []= new Oval( 200, "red", 50, 50, 150, 150 );
$gobjs []= new Rectangle( 100, "black", 100, 100, 300, 300 );

  再次运行这个代码,突然这个椭圆就在这个方框上面了,如图 6 所示。

  图6. 红圆现在在黑方框上面了

红圆现在在黑方框上面了

  红圆现在就出现在黑方框上面了,尽管它是先创建的,也是首先添加到数组中的。这就是 z 值的实际价值:您可以按照任何顺序来创建对象,并可以通过调整每个对象的 z 值来调整彼此之间的相对位置。

  在这段代码中,z 值排序是在这个库之外实现的。让我们通过创建一个新容器对象 Group 来实现这种功能,其中保存了一组 GraphicsObject 对象。Group 对象然后再处理排序的问题。

8页,页码:[1] [2] [3] [4] [5] [6] [7] [8] 

上一篇:把你的摄像头架到网上去
下一篇:照片处理:钻戒金属质感完美修复
标题:使用PHP 5.0创建图形的巧妙方法 作者:Jack Herrington 来源:ibm ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐