/*------------------------------------------------------------ Copyright (c) 2013, Friends of Ed (An Apress Company) All rights reserved.
The code provided here accompanies the book:
Processing: Creative Coding and Generative Art in Processing 2 By Ira Greenberg, Dianna Xu, and Deepak Kumar Friends of Ed (An APress Company), 2013 ISBN-13 978-1430244646 Please refer to the associated README for a full disclaimer. ------------------------------------------------------------*/
// Sketch 7-11: Word Cloud Visualization // The WordTile class class WordTile extends Word { // A graphical tile conatining a word and additional attributes PVector location; // The top left corner of the tile (x, y) float tileW, tileH; // width and height of the tile color tileColor; // fill color of word float tileFS = 24; // the font size of tile, default is 24
WordTile(String newWord) { // Constructor super(newWord); setSize(); location = new PVector(0, 0); tileColor = color(0); } // WordTile()
void setXY (float x, float y) { location.x = x; location.y = y; } // setXY()
void setColor(color c) { tileColor = c; } void setFontSize() { tileFS = map(freq, 1, 20, 10, 120); setSize(); } // setFontSize()
void setSize() { textSize(tileFS); tileW = textWidth(word); tileH = textAscent(); } // setTileSize()
boolean intersect(WordTile t2) { float left1 = location.x; // the first tile’s bounding box float right1 = location.x+tileW; float top1 = location.y-tileH; float bot1 = location.y; float left2 = t2.location.x; // the second tile’s bounding box float right2 = left2+t2.tileW; float bot2 = t2.location.y; float top2 = bot2-t2.tileH; return !(right1 < left2 || left1 > right2 || bot1 < top2 || top1 > bot2); // testing intersection } // intersect()
void display() { fill(tileColor); textSize(tileFS); text(word, location.x, location.y); } // display() } // class WordTile