El post que buscas se encuentra eliminado, pero este también te puede interesar

Transformaciones geometricas en java

Anuncios

QUE ONDA TARINGUEROS EN ESTE PRIMER POST PONDRE ALGO MUY UTILIZE EN EL INSTITUTO SE TRATA EN UN PROGRAMA EN JAVA QUE REALIZA LAS TRANSFORMACIONES EN 2D EL CODIGO ES FACIL DE ENTENDER Y SENCILLO DE MODIFICAR DE ECHO EXPLIQUE CADA PARTE DEL CODIGO PARA UN ENTENDIMIENTO MAS RAPIDO
[/color]</br>
//GONZALEZ GOMEZ ERICK DASIEL
//ARMENGOL CIGARROA LEYVER
//RIVERA GARCIA MARBELLA
//CRUZ GOMEZ JORGE EMMANUEL
//LEON SOLIS DANIEL
// CARRION OCTAVIO
//ITESCO
//7 C
//ISC
//GRAFICACION


//LIBRERIAS UTILIZADAS
import java.awt.*;
import java.awt.geom.AffineTransform;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
//CLASE PRINCIPAL
public class Transformaciones extends JApplet {
//SE DECLARAN LOS PANELES Y LA POSICION
private int height = 500;
private int width = 400;
private Image imagenOne;
private PanelImagen panelImagen;
private PanelBotones panelBotones;
private AffineTransform trans = new AffineTransform();
private double rotacion = 0;
private double escala = 1;
private double traslacionx = 0;
private double traslaciony = 0;
public void init() {
//AQUI SE SEÑALA EL TAMAÑO DEL AWT
this.resize(500,400);
//SE MANDA A LLAMAR LA IMAGEN Y SE CREAN LOS PANELES
imagenOne = getImage(getCodeBase(), "NOMBRE DE LA IMAGEN Y LA EXTENCION JPG O PNG";
setLayout(new BorderLayout());
panelImagen = new PanelImagen();
panelBotones = new PanelBotones();
//SE COLOCA LA COSICION DE LOS PANELES
add(BorderLayout.CENTER, panelImagen);
add(BorderLayout.NORTH, panelBotones);
}
//SE TOMAN LOS DATOS ANTERIORMENTE ASIGNADOS
class PanelImagen extends JPanel {
public PanelImagen() {
setDoubleBuffered(true);
setSize(width, height);
}


public void paint(Graphics g) {

Graphics2D g2d = (Graphics2D) g;
//SE INDICA EL RENDERIZADO CON INTERPOLACION BILINEAR PARA UN MEJOR EFECTO
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//SE LE DA COLOR AL FONDO Y SE JALAN LOS DATOS DE POSICION
g2d.setColor(Color.black);
g2d.fillRect(0, 0, height, width);
//LOS DATOS RESULTANTES DE LA TRANSFORMACION REGRESAN A LA MATRIZ
trans.setToIdentity();
//AQUI SE CENTRA LA IMAGEN
trans.translate(traslacionx, traslaciony);
trans.scale(escala, escala);
//INDICAMOS EL PUNTO DE ROTACION.
trans.rotate(Math.toRadians(rotacion), imagenOne.getWidth(this) / 2,imagenOne.getWidth(this) / 4);
//SE IMPRIME LA IMAGEN CON LA TRANSFORMACION
g2d.drawImage(imagenOne, trans, this);
}
}

class PanelBotones extends JPanel implements ChangeListener {
//SE DECLARAN LOS SLIDER Y LAS ETIQUETAS
private JLabel escalaLabel;
private JLabel rotacionLabel;
private JLabel traslacionxLabel;
private JLabel traslacionyLabel;
private JSlider escalaSlider;
private JSlider rotacionSlider;
private JSlider traslacionxSlider;
private JSlider traslacionySlider;
public PanelBotones() {
//SE LE DA LA POSICION
setLayout(new GridLayout(2, 2));
// SE CREA UNA ETIQUETA EN EL BORDE
Border Borde = BorderFactory.createTitledBorder("TRANSFORMACION DE IMAGENES ITESCO";
this.setBorder(Borde);
//SE LES DA NOMBRE A LAS ETIQUETAS
escalaLabel = new JLabel("ESCALACION";
rotacionLabel = new JLabel("ROTACION";
traslacionxLabel = new JLabel("MOV EN X";
traslacionyLabel = new JLabel("MOV EN Y";
//SE CREAN LOS SLIDER
escalaSlider = new JSlider(1, 20, 10);
rotacionSlider = new JSlider(0, 360, 0);
traslacionxSlider = new JSlider(-100, 100, 0);
traslacionySlider = new JSlider(-100, 100, 0);
//SE LES AGREGA ACCION A LOS SLIDER
escalaSlider.addChangeListener(this);
rotacionSlider.addChangeListener(this);
traslacionxSlider.addChangeListener(this);
traslacionySlider.addChangeListener(this);
//SE AGREGAN LOS ELEMENTOS A LOS PANELES
add(escalaLabel);
add(escalaSlider);
add(rotacionLabel);
add(rotacionSlider);
add(traslacionxLabel);
add(traslacionxSlider);
add(traslacionyLabel);
add(traslacionySlider);
}
//AQUI SE REALIZAN LAS OPERACIONES PARA LOGRAR LAS TRANSFORMACIONES DE LA IMAGEN
public void stateChanged(ChangeEvent e) {
JSlider slider = (JSlider) e.getSource();
if (slider == escalaSlider) {
escala = slider.getValue() / 10.0;
}
if (slider == rotacionSlider) {
rotacion = slider.getValue()*4;
}
if (slider == traslacionxSlider) {
traslacionx= slider.getValue()*2;
}

if (slider == traslacionySlider) {
traslaciony= slider.getValue()*2;
}
//SE REPINTA LA IMAGEN UNA Y OTRA VEZ PARA APRECIAR LOS EFECTOS
//DE LO CONTRARIO SOLO SE IMPRIME UNA VEZ
panelImagen.repaint();
}
}
}

</br>
LISTO Y PUES AGRADECER NO CUESTA NADA SI QUIERES COMENTA Y SI NO PS NI MODO SOLO DAME UN 10

3 comentarios - Transformaciones geometricas en java

@Aburto666
oye falta el metodo principal si lo puedes corregir con todo y metodo principal, que es el public static void main... gracias