Graphics

Back to index

(seeeekrette fairly professional gif animator)

Introductory Notes!

Alice

Like Scratch, Alice uses drag-and-drop code blocks. Unlike Scratch, though, it revolves around a 3D world, a mobile camera, and classes in its structure.

In this, the first couple of frames are actually of the blender turning; every time the "d" key is pressed, the blender turns right by about 20 degrees. Using WASD, it's got the ability to go forwards, backwards, and turn side to side.

In addition to the previous, the camera stays aligned with the blender because the camera's vehicle is the blender; it's fixed in relation to the blender.

Next is the shooting sequence. "Projectile" is the cookie I used as a bullet; it normally stays hidden, but when space is pressed, it changes its point of view (both position and orientation) to the blender's, shows itself, and sends itself careening. The blender itself has multiple parts; the lid moves up and down in relation to the blender because it's also using the blender as a vehicle.


SketchUp

SketchUp isn't a programming language but a modelling tool; using different plane shapes, lines, and other geometric figures, you can create a 3D model of whatever you want.

There're a couple of different tool types here:

I didn't feel particularly inspired, so I just ended up with two Minecraft character models after a couple hours.

The first one I made is on the right; I was able to subdivide the larger figure into smaller planes that could each be colored accurately. After, I copied that one to make a textured one; where the parts were differently colored, I raised or lowered the plane relative to the rest to show the difference between surfaces. The main problem was that both the arms and legs were classified as components before; any changes made to one would transfer over to the other three. I had to turn the original's into unique groups separate from the textured one to restore them.

Another day, another model; this one's a spaceship of some sort.

Again, the only real advanced technique I used was to have components; anything that could be symmetrical was added to a single component that flipped it to the other side.

Another hour of nothing, another model; I manipulated the textured model into a pose by manipulating each body part's group and splitting up limbs to make joints.

VPython

Using Python's normal programming structure, VPython adds in a world display and different figures to use and play around with. To start off, here's the intro exercise:


So, what exactly is going on?

  1. Using VPython's library (in an earlier line, we do "from visual import *"), we could use the sphere function to draw a sphere with certain attributes. The first line is a scoop of strawberry.
  2. Using more sphere attributes, we made a white vanilla scoop that's had its y position raised above the previous. (Not entering a position just sets it to the origin.)
  3. Lastly, the cone's got a hecka lot of stuff: it's positioned at negative 0.5 y, it's got specific dimensions, it's oriented by an axis going downwards, it's hued orange, and it's textured with a wood texture.

I made the obligatory shooting game in this; however, Python's limitations as a language hinders any sort of pacing in an action game:

...Although it is pretty fun to draw with...

At any rate, here's the code from it:

Here're the assigned projects, though:

Earth Orbiting

For this, we had a constantly increasing time variable (t). Tapping into sine and cosine, we made the x and z coords trig functions, and I messed with the amplitude for an elliptical orbit.



Gravity and Bouncing

I didn't spend as much time on this one; the main concept is that the ball's elevated position is constantly lowered by gravity for a negative velocity. When it hits the bottom, the negative velocity is reversed until it's overcome and arcs back down.


Tahoma Cube

Pretty much just a wireframe with cylinders, every edge is bound to a frame in order to rotate correctly. Also, every cylinder is placed to be centered relative to the origin