170 likes | 281 Views
Media Software Design. DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida. Original image* by Moshell et al. PHP Graphics. The Coordinate System (for our example). x 800 y 600. Excerpt from DA Text. PHP Graphics.
E N D
Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al .
PHP Graphics The Coordinate System (for our example) x 800 y 600 Excerpt from DA Text
PHP Graphics Motivation: the RSL Pickup Graph
PHP Graphics The Coordinate System (for our example) x 0 800 y 0 600 600 0 yup = 600-y (so y=600 – yup) Excerpt from DA Text
PHP Graphics: The GD Library http://php.net/manual/en/ref.image.php Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print '<img src="graphout.png?lastmod=1">'; Excerpt from DA Text
PHP Graphics: The GD Library http://php.net/manual/en/ref.image.php Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print '<img src="graphout.png?lastmod=1">'; Do this to force the browser not to cache the png file. If it is cached, you won't see changes ... frustrating. Excerpt from DA Text
PHP Graphics: The GD Library http://php.net/manual/en/ref.image.php Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print '<img src="graphout.png?lastmod=1">'; Do this to force the browser not to cache the png file. If it is cached, you won't see changes ... frustrating. NOTE: This sometimes sorta works Excerpt from DA Text
Project 4: Cowpies Examine the cowpie1 prototype. Behavior Code Examine the Requirements for Project 4 markbeam.com
Project 4: Cowpies Requirements BEGIN with a database task: ** remember previous moves and replay them. So we will BEGIN (next week) with a tutorial database example called "address book" to build up your database skills, and also give you some code to steal / merge with cowpie1.php. Let's look at one more graphical issue. Can we write our .png DIRECTLY to browser?
PHP Graphics: The GD Library http://php.net/manual/en/ref.image.php Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image,'graphout.png'); imagedestroy($image); print '<img src="graphout.png?lastmod=1">'; Can we write the image DIRECTLY to the browser, instead of into a file? Docs say we can, so we try it. Excerpt from DA Text
PHP Graphics: The GD Library http://php.net/manual/en/ref.image.php Basic example: $Imagewidth=800;$Imageheight=600; $image=imagecreate($Imagewidth, $Imageheight); $colorWhite=imagecolorallocate($image, 255, 255, 255); $colorGreen=imagecolorallocate($image, 0, 200, 0); // x1 y1 x2 y2 imageline($image, 300, 200, 300,550, $coloGreen); imagepng($image); imagedestroy($image); print '<img src="graphout.png?lastmod=1">'; Can we write the image DIRECTLY to the browser, instead of into a file? Docs say we can, so we try it. Excerpt from DA Text
GD direct to screen: ?? What's this? Any ideas?
GD direct to screen: ?? What's this? Any ideas? View Source
GD direct to screen: ?? Once you've announced to the browser that HTML is coming, it expects HTML. So what if we tried a different header?
So what if we tried a different header? PHP has a header function. We modify cowpie1.php: function htmlheader() { print "<html><body><form method='post'>"; } //main program $angle=$_POST['angle']; $velocity=$_POST['velocity']; if (!$angle) htmlheader(); //need HTML first time for form else header('Content-type: image/png');
Result: yes, it "works" ... but now it's not an HTML form any more, so there are no inputs (controls). It's not interactive. So ... we're better off embedding png in html.
FOR THURSDAY: The usual shoot-out model: GET your Group's BEST GAME ready to play! If you need help with Project 3, come SEE ME.