Top Banner
1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al .
17

1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

Jan 19, 2016

Download

Documents

Matilda Garrett
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

1

Media Software Design

DIG 3134

Fall 2012

Lecture 15: Graphics

J. Michael Moshell

University of Central Florida

Original image* by Moshell et al .

Page 2: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-2 -Excerpt from DA Text

PHP Graphics

The Coordinate System (for our example)

x 800

y

600

Page 3: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-3 -

PHP GraphicsMotivation: the RSL Pickup Graph

Page 4: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-4 -Excerpt from DA Text

PHP Graphics

The Coordinate System (for our example)

x 0 800

y 0 600

600 0 yup = 600-y (so y=600 – yup)

Page 5: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-5 -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">';

Page 6: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-6 -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.

Page 7: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-7 -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

Page 8: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-8 -

markbeam.com

Project 4: Cowpies

Examine the cowpie1

prototype.

Behavior

Code

Examine the Requirements for Project 4

Page 9: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-9 -

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?

Page 10: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-10 -Excerpt from DA Text

PHP Graphics: The GD LibraryCan we write the

image DIRECTLY to

the browser, instead of

into a file? Docs say

we can, so we try it.

Page 11: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-11 -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.

Page 12: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-12 -

GD direct to screen: ??

What's this?

Any ideas?

Page 13: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-13 -

GD direct to screen: ??

What's this?

Any ideas?

View Source

Page 14: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-14 -

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?

Page 15: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-15 -

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');

Page 16: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-16 -

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.

Page 17: 1 Media Software Design DIG 3134 Fall 2012 Lecture 15: Graphics J. Michael Moshell University of Central Florida Original image* by Moshell et al.

-17 -

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.