Ir al contenido principal

Uso aplicado de la instrucción "For"


A continuación se presenta una pequeña aplicación, donde se utiliza la instrucción de control "For". Este ejemplo muestra como construir un Applet y como dibujar sobre ella (utilizando para ello la instrucción "For"), una seria de rombos, existen dos prototipos (métodos), el primer "paintRomboLine", resulta mas fácil de entender, pero necesita mas código para funcionar (4 instrucciones "for"), el segundo prototipo solo ocupa una instrucción "for", y realiza una serie de cálculos por cuadrantes.

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.HeadlessException;

import javax.swing.JApplet;

/**
 * Simple class to paint a rombo based in lines.
 * 
 * @author jsanca
 * 
 */
public class DrawRombo extends JApplet {

private static final long serialVersionUID = 7677516509658561962L;

public DrawRombo() throws HeadlessException {

super();
setSize(new Dimension(1200, 1200));
} // DrawCircularLine.

@Override
public void paint(Graphics g) {

int y = 180;
int x = 180;
int intensity = 4;

super.paint(g);
this.paintRomboLine(g);
this.paintRomboLine(g, x, y, intensity);

y = 270;
x = 90;
intensity = 2;
this.paintRomboLine(g, x, y, intensity);

y = 270;
x = 270;
intensity = 1;
this.paintRomboLine(g, x, y, intensity);

y = 360;
x = 180;
intensity = 8;
this.paintRomboLine(g, x, y, intensity);

y = 540;
x = 180;
intensity = 16;
this.paintRomboLine(g, x, y, intensity);

y = 450;
x = 90;
intensity = 90;
this.paintRomboLine(g, x, y, intensity);

y = 450;
x = 270;
intensity = 45;
this.paintRomboLine(g, x, y, intensity);
} // paint.

private void paintRomboLine(Graphics graphics) {

int x1 = 90;
int y1 = 90;
int x2 = x1;
int y2 = y1 - 90;

for (int i = 0; i <= 90; ++i) {

graphics.drawLine(x1, y1, x2++, y2++);
}

for (int i = 0; i <= 90; ++i) {

graphics.drawLine(x1, y1, x2--, y2++);
}

for (int i = 0; i <= 90; ++i) {

graphics.drawLine(x1, y1, x2--, y2--);
}

for (int i = 0; i <= 90; ++i) {

graphics.drawLine(x1, y1, x2++, y2--);
}

} // paintRomboLine.

private void paintRomboLine(Graphics graphics, final int x, final int y,
final int intensity) {

int x1 = Math.abs(x); // 180; // 90;
int y1 = Math.abs(y); // 180; // 90;
int x2 = x1;
int y2 = y1 - 90;
int cuadrante = 0;
int div = Math.abs(intensity);
div = (div == 0) ? 1 : div;
int iteration = 360 / div;

for (int i = 0; i <= iteration; ++i) {

if (i % (iteration / 4) == 0) {

cuadrante += 1;
}

x2 += (1 * intensity)
* ((cuadrante == 2 || cuadrante == 3) ? -1 : 1);
y2 += (1 * intensity)
* ((cuadrante == 3 || cuadrante == 4) ? -1 : 1);

graphics.drawLine(x1, y1, x2, y2);
}
} // paintCircularLine.

} // E:O:F:DrawCircularLine.


Comentarios

Entradas más populares de este blog

Impensando acerca de las referencias en Java

Fue hace ya algún tiempo que pase un rato discutiendo con algunos compañeros acerca de si existe o no el paso por referencia; el discurso fue mucho hacia que en Java el comportamiento, en el supuestamente pasamos por referencia un objeto y por valor los objetos primitivos creo mucha polémica. Para ubicarnos en contexto veamos el siguiente ejemplo. public static void main(String[] args) { int value = 10; changeValue(value); System.out.println("value = " + value); User user = new User(); Name name = new Name(); user.setName(name); name.setName("jsanca"); name.setLastName("XXX"); user.setPassword("123queso"); System.out.println("user: " + user.getName().getName() + ", " + user.getName().getLastName() + ", " + user.getPassword()); changeValue1(user); System.out.println("user: " + user.getName().getName() + ", " + user.getName().getLastName() + ", " + user.ge...

Links acerca de usabilidad

Bueno esta haciendo un research acerca de usabilidad y decidi compartir algunos de los links mas interesantes: Este esta muy cool y dice por que son buenos, gmail #1: http://www.1stwebdesigner.com/design/well-designed-usable-sites/ Los mejores menus: http://www.kronikmedia.co.uk/blog/website-navigation-menu-design/3580/ Otro top ten: http://www.topsite.com/best/usability los CMS con mas usabilidad http://net.tutsplus.com/articles/web-roundups/top-10-most-usable-content-management-systems/ Las grandes companias que incorporan usabilidad en sus sistemas: http://www.siteiq.net/7806/the-2013-usability-top-10-ibm-leads-sap-soars-and-apple-screws-up-the-rankings-2 + Algo interesante: top ten de sitios de Universidades http://blog.thebrickfactory.com/2010/03/top-11-best-designed-university-websites/ Y estos son 10 videitos acerca de usabilidad: http://www.usefulusability.com/10-must-see-usability-videos/ Enjoy!

Wikipedia data base schema

Algo interesante como caso de estudio, especialmente para los que estén cursando bases de datos, el esquema de la Wikipedia esta disponible para hechar un ojo. A simple vista, me gusta mucho la simplicidad y lo bien documentada que se encuentra, vale la pena dedicarle un tiempo. http://www.wikipedia.org/