<< Chapter < Page Chapter >> Page >

Tinging an image

An image can be tinged with a color and its transparency can be set by assigning a given value to the alpha channel. Forthis purpose, the function tint() can be used. For example, a blue tone can be assigned to the inlaidimage of [link] by just preceding the second image() command with tint(0, 153, 204, 126) .

Translations, rotations, and scale transformations

Representing points and vectors

In computer graphics, points and vectors are represented with the
homogeneous coordinates
quadruples of numbers, where the first triple is to be read in the X-Y-Z space, while thefourth number indicates a vector if it takes value 0, or a point if it takes value 1.
A translation is obtained by adding, in homogeneous coordinates, a vector to a point, and the result is apoint. Alternatively we ca see a translation as a matrix-vector product (see Matrix Arithmetic ), where the matrix is 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 , and the vector is the one representing the point x y z 1 . An anti-clockwise rotation by the angle θ around the axis z ( roll ), is obtained by the rotation matrix θ θ 0 0 θ θ 0 0 0 0 1 0 0 0 0 1 . Rotations around the axes x ( pitch ) and y ( yaw ) are realized by means of rotation matrices of the same kind, anda rotation around an arbitrary axis can be obtained by composition (left multiply) of elementary rotations aroundeach of the main axes.

Translations

The function translate() moves an object in the image window. It takes two or three parameters, being thedisplacements along the directions x , y (and z ), respectively.

Rotations

In two dimensions, the function rotate() is used to rotate objects in the image window. This is obtained by (left) multiplying thecoordinates of each pixel of the object by a rotation matrix. Rotations are always specified around the top leftcorner of the window (
    0 0
coordinate). Translations can be used to move the rotation axis to other points. Rotation angles are specifiedin radians. Recall that 2 rad 360 ˚ . For example, insert the rotation rotate(PI/3) before the second image() command in [link] . In three dimensions, we can use elementary rotations around the coordinate axes rotateX() , rotateY() , e rotateZ() .

Scale transformations

The function scale() allows to expand or contract an object by multiplication of its point coordinates by a constant. When itis invoked with two or three parameters, different scalings can be applied to the three axes.

Typographic elements

Every tool or language for media manipulation gives the opportunity towork with written words and with their fundamental visual elements: typographic characters.

The aspect of a type has two main components: font and size.

Processing has the class PFont and the methods loadFont() (to load a font and assign it to an object of the PFont class) and textFont() (to activate a font with a specific size). In order to load afont, this has to be pre-loaded into the directory data of the current sketch. The tool Create Font , accessible from the Tools menu in Processing, creates the bitmaps of the characters that theprogrammer intends to use. The file with the bitmaps is put in the data directory. After these preliminary operations, the font can be used to write some text, using thefunction text() . With this function, a string of characters can be put in the 2D or 3D space, possiblyinserting it within a rectangular box. The alignment of characters in the box is governed by the function textAlign() . In the default configuration, the written text can be spatially transformed like any otherobject. The color of characters can be set with the usual fill() , like for any other graphic object.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Media processing in processing. OpenStax CNX. Nov 10, 2010 Download for free at http://cnx.org/content/col10268/1.14
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Media processing in processing' conversation and receive update notifications?

Ask