Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Paint 3-D images with PHP

Mike Brittain (mike@mikebrittain.com), Director of Technology, ID Society
Mike Brittain
Mike Brittain is the director of technology at ID Society, a full-service Internet marketing agency in New York City. He has been developing Web sites and applications for more than 10 years, focusing on open source languages and applications. When not at his computer, he can often be found on skis or a snowboard. He can be reached at mike@mikebrittain.com.

Summary:  PHP, a language originally intended for Web development, has been used for years to manage dynamic Web sites and database applications. Extensions to the language available through the PHP Extension and Application Repository (PEAR) have allowed developers to take the language in new and interesting directions. PEAR's Image_3D package is an object-oriented interface for creating three-dimensional (3-D) graphics in a variety of formats, including PNG and SVG, two image formats with increasing support by modern Web browsers. Find out how to use the Image_3D package, learn the limitations of using dynamic 3-D images, and investigate solutions and practical applications of 3-D graphics.

Date:  28 Mar 2006
Level:  Intermediate PDF:  A4 and Letter (240 KB | 37 pages)Get Adobe® Reader®

Activity:  11195 views
Comments:  

Before you start

This tutorial is for PHP programmers interested in dynamically generating 3-D graphics. Images can be created from scratch, built up from objects and light sources positioned in space according to X, Y, and Z coordinates. Programmers with experience using 3-D Studio Max will see how to import objects from 3DS files into PHP creations. Complex surfaces defined by parametric equations can easily be mapped using Image_3D. Finally, business applications and data reports can be enhanced by adding pie charts generated on the fly.

About this tutorial

Image_3D is an object-oriented interface for creating 3-D images. Objects and lights are positioned in a 3-D space according to X, Y, and Z coordinates. Images are then rendered into 2-D space and can be stored as PNG, SVG, or output to the shell (for use on ANSI shells). The package can be used to easily generate a handful of simple 3-D objects, including cubes, cones, spheres, text, and pie graphs. In addition, there is support for importing and modifying objects created in 3-D Studio Max. Developers with a strong understanding of 3-D spaces can take advantage of the custom polygram and surface maps to create some interesting objects.

The first half of this tutorial will demonstrate how to use command-line PHP scripts to generate 3-D image files. After setting up a basic 3-D space with colors and lights, each unique 3-D object type will be investigated, as well as each of the output file formats. The second half will discuss how to turn these basic examples into practical applications. Generating 3-D images is a processor-intensive task, so you will identify a solution for this problem in order to take dynamically generated images to the Web, without crashing your Web servers. The Image_3D package supports only static image formats, so you will build a simple JavaScript solution for animating the 3-D spaces. Finally, you will write a PHP class for displaying data reports in colorful pie charts that can be integrated with business applications.


System requirements

The following software and tools are required to follow along:

PHP V5
The Image_3D package is written using the PHP V5 object and class syntax.
Image_3D
The PEAR package will need to be installed. Typically, the installation of Image_3D should be easy if you have root (or administrator) access to your machine. Because Image_3D is in alpha release, the PEAR installation may complain that the package is not "stable." Use the -f option to force the installation:
pear install -f Image_3D

GD
This graphics library is required to output PNG files, though other file types can be generated from Image_3D in the absence of GD. As of PHP V4.3, a version of the GD library comes bundled with new PHP installations. So there's a good chance you won't need to worry about recompiling PHP. You can use phpinfo() to see if your current PHP installation is GD-enabled.
Web server
Examples in the second half of the tutorial can be built for use on a Web site. The Apache's open source Web server and IBM HTTP Server are two options, if you don't already have a Web server available.
SVG viewer
SVG files can be viewed in Mozilla Firefox V1.5, which includes native SVG support. Internet Explorer users can add SVG support to the browser by downloading the Adobe SVG plug-in.

Prerequisites

This tutorial assumes at least a base knowledge of objects and classes, as the entire interface for Image_3D is object-oriented. Access to a Linux® shell account or a Windows® command prompt is required for executing command-line PHP examples shown in the first half of the tutorial. Basic experience with JavaScript is also assumed.

1 of 13 | Next

Comments



Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Open source
ArticleID=106865
TutorialTitle=Paint 3-D images with PHP
publish-date=03282006
author1-email=mike@mikebrittain.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers