Graphics, Animation, and Randomization
Having introduced the main programming ideas for FIT100, it is time to put it all together.  The task will be to draw something interesting on the form and in the process get experience writing procedures

Drawing On The Form
The form is logically divided into a grid, and a position is designated by how many grid points it is from the Left and the Top
The upper left corner is position (0,0)
The position (x, y) is x units from Left, and y units from Top
Increasing the x value moves to the right
Unlike graphing, though, increasing
the y value moves down
The lower right corner is
position (ScaleWidth, ScaleHeight)
To resize the form, change
ScaleWidth and ScaleHeight

Drawing A Line
To draw a line on Form1, call the procedure
Form1.Line (x1, y1) - (x2, y2)
If there is only one form, the form name can be elided
To get a color, follow the positioning information with the specification of the color
Form1.Line (x1, y1) - (x2, y2), RGB(255,255,255)

Red, Green and Blue
Recall that colors are created on the screen with a combination of three colors of light -- red, green, blue
When drawing, one can specify the exact color by calling a procedure, RGB( , , ) whose three parameters are the contribution of the three colors in the range 0 -- 255
RGB(0, 0, 0)
RGB(255, 0, 0)
RGB(0, 255, 0)
RGB(0, 0, 255)
RGB(255,255,255)

Drawing A Box
Drawing a rectangle is like drawing a line except that there is a final parameter “B”
Line (x1, y1) - (x2, y2), RGB(r, g, b), B
A specific fill color can be achieved by having two properties set
FillColor = RGB( , , )
FillStyle = 0

Programming A Rectangle
To begin, draw a box in the Form_Click event handler

Color
A black rectangle on a gray form is a little dorky …
Set the background color of the form

Make the Form More Interesting
Make box fill opaque and change line to white line

Make A Procedure For Box Drawing
Draw a 1K´1K box with opaque fill and a white line
The fill color will be whatever color is set when the procedure is called

More Action, Please
Click once, create one box
Click again, show another
Steps for multiclicks ...
Declare clickCount variable
In Form_Load initialize it to 0
In Form_Click, increment it
Then test its value with If
For each value do what you
want on that click
1st: black box
2nd: green box

Add Another Option
Increase the form size
to cover whole screen
Add another “click” case
WindowState has 3 values
Setting 2 maximizes form
Drawing box from (0,0) to
(ScaleWidth,ScaleHeight)
covers the entire form …
make it red!

To Give Motion, Draw On Timer Tick
Adding a timer allows changes to be made a regular intervals … place timer anywhere on form

Turn Timer On/Off With Click
The 4th click starts box draw
and the 5th click stops it

Randomize!
Diagonal boxes are boring … randomize
To place boxes randomly,
Set Randomize in Form_Load
Declare xPos, yPos
in tmrClock
Pick a random number
in (0,1) range with a
Rnd(1) procedure call
Multiply by the largest
size to scale & make Int

One result ...

Summary
Project 2 is to design your own “artistic” image … or electronic greeting card to impress your family and friends … and TA
There is no limit to how intricate your design can be
There are points for creativity and ...
You must use procedures as called for in the assignment