In this repository we will practice with pseudo-graphics application to understand main principles of Graphical User Interface. All practice will be organized in four major parts: Basic Graphics, Animation, GUI and Portable Graphics.
Basic Graphics
First, start with a few preparation. Draw some simple cartoon as array of symbols and output it to console. To give me possibility to check your results use some intermediate method, that will print each your symbol both to console and to a log file, than I can check it on Github.
Second, practice with geometry figures drawing. Create methods for drawing a point with arbitrary coordinates, horizontal, vertical and diagonal line, rectangle, try to figure out how to draw non-orthogonal figures: triangle, circle, line with arbitrary incline, polygon and Bézier curve .
Third, master multiple figures drawing. Create Canvas class that will accumulate all you drawings before they printed. Implement drawing of non-orthogonal figures. Draw Sierpinski triangle on its third iteration (containing 9 simple triangles).
Forth, start investigate animation. Make drawing loop that call drawing method after some key pressed. Draw Sierpinski triangle step-by-step. Enhance printing to log file to allow me easily watch sequence of uniform frames.
Final, apply your knowledge to make graphical game. Implement Conway's Life. Allow user input initial state and then calculate and draw new state step-by-step.
Animation [draft]
Animation in graphical applications is used to make funny cartons, video games, dynamic graphical illustration and responsive interface.
In this course first we will change our procedural drawing to object-oriented.
It allows us to control state of our graphical objects. Also we separate graphical library from it's application.
Second, we make simple linear movement animation and apply it to some object.
Then we upgrade it to path accelerated movement using Beziers-curve both for defining trajectory and speed of animation.
After that we implement combined animations.
Then we investigate matrix animations for rotations and will try it both on vector and bitmap graphical objects.
In this repository we will practice with pseudo-graphics application to understand main principles of Graphical User Interface. All practice will be organized in four major parts: Basic Graphics, Animation, GUI and Portable Graphics.
Basic Graphics
First, start with a few preparation. Draw some simple cartoon as array of symbols and output it to console. To give me possibility to check your results use some intermediate method, that will print each your symbol both to console and to a log file, than I can check it on Github.
Second, practice with geometry figures drawing. Create methods for drawing a point with arbitrary coordinates, horizontal, vertical and diagonal line, rectangle, try to figure out how to draw non-orthogonal figures: triangle, circle, line with arbitrary incline, polygon and Bézier curve .
Third, master multiple figures drawing. Create Canvas class that will accumulate all you drawings before they printed. Implement drawing of non-orthogonal figures. Draw Sierpinski triangle on its third iteration (containing 9 simple triangles).
Forth, start investigate animation. Make drawing loop that call drawing method after some key pressed. Draw Sierpinski triangle step-by-step. Enhance printing to log file to allow me easily watch sequence of uniform frames.
Final, apply your knowledge to make graphical game. Implement Conway's Life. Allow user input initial state and then calculate and draw new state step-by-step.
Animation [draft]
Animation in graphical applications is used to make funny cartons, video games, dynamic graphical illustration and responsive interface.
In this course first we will change our procedural drawing to object-oriented. It allows us to control state of our graphical objects. Also we separate graphical library from it's application.
Second, we make simple linear movement animation and apply it to some object.
Then we upgrade it to path accelerated movement using Beziers-curve both for defining trajectory and speed of animation.
After that we implement combined animations.
Then we investigate matrix animations for rotations and will try it both on vector and bitmap graphical objects.
(To be done)
GUI
(To be done)
Portable Graphics
(To be done)