Si quieres aprender a modelar un cartucho de este fusil, en verdad muy sencillo, dale CLIC al siguiente enlace:
¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]
JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]
En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]
La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]
JAN29
JAN29
import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.geom.Line2D; import java.awt.geom.QuadCurve2D; import java.awt.geom.Rectangle2D; import javax.swing.JPanel; /** * @web http://jc-mouse.blogspot.com/ * @author Mouse */ public class j2dPanel extends JPanel{ double centrox,centroy; double rotate; /*constructor*/ public j2dPanel(Dimension d){ this.setPreferredSize(d); this.setSize(d); this.setVisible(true); //se obtiene las coordenadas del centro del jpanel this.centrox= this.size().width/2; this.centroy = this.size().height/2; //se inicializa la rotacion en o grados rotate = 0; this.repaint(); } @Override public void paintComponent(Graphics g){ //se inicializa java2d super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // se añade un color de fondo degrado g2.setPaint(new GradientPaint(0, 0, new Color(131,131,131), Float.valueOf(this.getSize().width), 0, new Color(188,194,236))); g2.fill(g2.getClip()); //se creo otro objeto AffineTransform para guardar los valores iniciales AffineTransform oldt = g2.getTransform(); //se aplica la rotacion y se traslada las coordenadas para que coincida con el centro del JPanel g2.transform(AffineTransform.getRotateInstance(Math.toRadians(rotate),this.centrox,this.centroy)); /************************************************************************/ /* Una ves que se aplica la transformacion , todas las figuras se dibujaran siguiendo el angulo asignado en radianes y tomando como eje el centro del JPanel */ //grosor y color de pincel g2.setColor(new Color(200,10,10)); //se dibuja la figura, junto a una linea que nos servira para apreciar mejor la rotacion g2.setPaint(new GradientPaint((float) this.centrox-100, (float) this.centroy, new Color(200,0,25), (float) this.centrox+100, (float) this.centroy, new Color(0,96,27))); g2.fill(new Rectangle2D.Double( this.centrox-100, this.centroy-50, 200, 100)); g2.fill(new Rectangle2D.Double( this.centrox-100, this.centroy-50, 100, 170)); g2.setColor(new Color(0,0,200)); g2.setStroke(new BasicStroke(4.0f)); g2.draw(new Line2D.Double(this.centrox,this.centroy,this.centrox+100,this.centroy)); //un poco de texto g2.setFont(new Font("Arial", Font.BOLD, 12)); g2.drawString(" R=" + rotate+"°",(float) this.centrox+100 ,(float) this.centroy); /************************************************************************/ //retornamos a los valores iniciales g2.setTransform(oldt); g2.setColor(new Color(0,0,0)); g2.setFont(new Font("Arial", Font.PLAIN, 12)); g2.drawString("Rotación (Grados) = " + rotate + "°", 10,25); g2.drawString("Rotación (Radianes) = " + Math.toRadians(rotate), 10,50); g2.setFont(new Font("Arial", Font.BOLD, 12)); g2.drawString("x' 180°", 10 ,(float) this.centroy-10); g2.drawString("x 0°", this.getSize().width-50 ,(float) this.centroy-10); g2.drawString("y 270°", (float) this.centrox+5 ,30); g2.drawString("y' 90°", (float) this.centrox+5 ,this.getSize().height-30); // se dibuja una figura con forma de "flecha" g2.setStroke(new BasicStroke(2.0f)); g2.draw(new QuadCurve2D.Double(this.centrox + 0, this.centroy + 50, this.centrox + 45,this.centroy + 45, this.centrox + 50, this.centroy + 0)); g2.draw(new Line2D.Double(this.centrox + 0,this.centroy + 50,this.centrox + 10,this.centroy + 40)); g2.draw(new Line2D.Double(this.centrox + 0, this.centroy + 50,this.centrox + 14, this.centroy + 55)); //dibujamos unaas lineas que simularan el eje de coordenas X & Y g2.setStroke(new BasicStroke(1.0f)); g2.setColor(new Color(0,0,0)); g2.draw(new Line2D.Double(this.centrox,0,this.centrox,this.centroy*2)); g2.draw(new Line2D.Double(0,this.centroy,this.centrox*2,this.centroy)); this.repaint(); } //aplica la rotacion en grados public void setRotate(double r){ this.rotate=r; } //generamos un numero al azar de 0 a 360 public void setRotateRandom(){ this.rotate=(int)(Math.random()*360); } }
01 public class Interfaz extends javax.swing.JFrame { 02 j2dPanel j2d; 03 /** Creates new form Interfaz */ 04 public Interfaz() { 05 initComponents(); 06 this.setTitle("AffineTransform: Rotación - by Mouse"); 07 j2d = new j2dPanel(PANEL.getSize()); 08 PANEL.add(j2d); 09 PANEL.repaint(); 10 }
01 private void cmdRotar1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdRotar1ActionPerformed 02 j2d.setRotate(Double.valueOf(txtRotate.getText())); 03 }//GEN-LAST:event_cmdRotar1ActionPerformed 04 05 private void cmdRotar2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdRotar2ActionPerformed 06 j2d.setRotateRandom(); 07 }//GEN-LAST:event_cmdRotar2ActionPerformed
JAN29
01 import java.awt.BasicStroke; 02 import java.awt.Color; 03 import java.awt.Dimension; 04 import java.awt.Font; 05 import java.awt.Graphics; 06 import java.awt.Graphics2D; 07 import java.awt.geom.Line2D; 08 import java.awt.geom.Point2D; 09 import java.awt.geom.QuadCurve2D; 10 import java.text.NumberFormat; 11 import javax.swing.JOptionPane; 12 import javax.swing.JPanel; 13 /** 14 * @web http://jc-mouse.blogspot.com/ 15 * @author Mouse 16 */ 17 public class miPaint extends JPanel { 18 private Point2D Punto1; 19 private Point2D Punto2; 20 private Point2D Punto3; 21 private Point2D Punto; 22 private boolean band=true; 23 float rango=0.01f; 24 25 public miPaint(Dimension d){ 26 this.setPreferredSize(d); 27 this.setSize(d); 28 this.setVisible(true); 29 this.repaint(); 30 //se crean las coordenas al azar 31 this.Punto1 = new Point2D.Double(getCoordenada(),getCoordenada()); 32 this.Punto2 = new Point2D.Double(getCoordenada(),getCoordenada()); 33 this.Punto3 = new Point2D.Double(getCoordenada(),getCoordenada()); 34 } 35 //actualiza nuevas coordenadas a los Puntos 36 public void setPoint2D(String x1,String y1,String x2,String y2,String x3,String y3, boolean b){ 37 this.Punto1 = new Point2D.Float(Float.valueOf(x1),Float.valueOf(y1)); 38 this.Punto2 = new Point2D.Float(Float.valueOf(x3),Float.valueOf(y3)); 39 this.Punto3 = new Point2D.Float(Float.valueOf(x2),Float.valueOf(y2)); 40 this.band=b; 41 } 42 43 @Override 44 public void paintComponent(Graphics g){ 45 super.paintComponent(g); 46 Graphics2D g2 = (Graphics2D)g; 47 //grosor de pincel 48 g2.setStroke(new BasicStroke(2.0f)); 49 //color de pincel 50 g2.setColor(new Color(0,0,200)); 51 if(band){ 52 Dibujar_QuadCurve2D(g2); 53 }else{ 54 Dibujar_Bezier(g2); 55 } 56 this.repaint(); 57 Mostrar_Datos(g2); 58 } 59 60 //dibuja la curva con la funcion de java2d QuadCurve2D 61 public void Dibujar_QuadCurve2D(Graphics2D g2){ 62 g2.draw(new QuadCurve2D.Double(Punto1.getX(), Punto1.getY(), Punto2.getX(), Punto2.getY(), 63 Punto3.getX(), Punto3.getY())); 64 } 65 66 //dibuja la curva con la funcion de la curva cuadratica de Bezier 67 //(1-t)^2*p1 + 2t(1-t)p2 + t^2*p3 68 public void Dibujar_Bezier(Graphics2D g2){ 69 float f1; 70 float f2; 71 float t=0; 72 while (t<=1.0){ 73 //obtiene las coordenadas 74 f1 = (float) (((1-t)*(1-t) * Punto1.getX()) + 2 * t * (1 - t) * Punto2.getX() + (t * t) 75 * Punto3.getX()); 76 f2 = (float) (((1-t)*(1-t) * Punto1.getY()) + 2 * t * (1 - t) * Punto2.getY() + (t * t) 77 * Punto3.getY()); 78 //crea un punto con esas coordenadas 79 Punto = new Point2D.Float(f1,f2); 80 //dibuja el punto 81 g2.draw(new Line2D.Double(Punto.getX(),Punto.getY(),Punto.getX(),Punto.getY())); 82 t = (float) (t + rango); 83 } 84 85 } 86 87 // 88 public void setRango(String x){ 89 if((Float.valueOf(x)<=1)&&(Float.valueOf(x)>0.001)){ 90 this.rango=Float.valueOf(x); 91 }else{ 92 JOptionPane.showMessageDialog(this,"Solo valores entre [0.001 y 1.0]"); 93 } 94 95 } 96 /* metodos auxiliares */ 97 98 //muestra lascoordenas de los puntos P1,P2 Y P3 99 //dibuja las lineas que estos forman 100 private void Mostrar_Datos(Graphics2D g2){ 101 g2.setStroke(new BasicStroke(1.0f)); 102 g2.setColor(new Color(0,0,0)); 103 g2.draw(new Line2D.Double(Punto1.getX(), Punto1.getY(), Punto2.getX(), Punto2.getY())); 104 g2.draw(new Line2D.Double(Punto3.getX(), Punto3.getY(), Punto2.getX(), Punto2.getY())); 105 dibuja_coordenada(g2,Punto1.getX(), Punto1.getY(),"Punto 1"); 106 dibuja_coordenada(g2,Punto2.getX(), Punto2.getY(),"Punto de Control"); 107 dibuja_coordenada(g2,Punto3.getX(), Punto3.getY(),"Punto 2"); 108 } 109 110 //dibuja las coordenas dadas un punto P1,P2 111 private void dibuja_coordenada(Graphics2D g2,double x, double y,String t){ 112 NumberFormat mf = NumberFormat.getInstance(); 113 mf.setMaximumFractionDigits(2); 114 g2.setColor(new Color(255,0,0)); 115 g2.setFont(new Font("Arial", Font.BOLD, 11)); 116 g2.drawString(t + " ("+mf.format(x)+","+mf.format(y)+")",(float) (x+4),(float) (y-10)); 117 g2.setStroke(new BasicStroke(4.5f)); 118 g2.draw(new Line2D.Double(x,y,x,y)); 119 } 120 121 //genera un valor al azar 122 private double getCoordenada(){ 123 return ((Math.random()*350)+50); 124 } 125 126 127 }
01 public class interfaz extends javax.swing.JFrame { 02 miPaint paint; 03 /** Creates new form interfaz */ 04 public interfaz() { 05 initComponents(); 06 this.setTitle("JAVA2D - QuadCurve2D - [by Mouse]"); 07 this.setLocationRelativeTo(null); 08 paint = new miPaint(jPanel1.getSize()); 09 jPanel1.add(paint); 10 } 11 12 private void bt_1ActionPerformed(java.awt.event.ActionEvent evt) { 13 paint.setPoint2D(p1x.getText(), p1y.getText(), p2x.getText(), p2y.getText(), pcx.getText(), pcy.getText(),true); 14 } 15 16 private void bt_2ActionPerformed(java.awt.event.ActionEvent evt) { 17 paint.setPoint2D(p1x.getText(), p1y.getText(), p2x.getText(), p2y.getText(), pcx.getText(), pcy.getText(),false); 18 } 19 20 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 21 paint.setRango(f.getText()); 22 }
JAN29
01 @Override 02 public void paint (Graphics g) { 03 //creamos el objeto a dibujar 04 Rectangle2D rectangulo; 05 //pasamos el objeto Graphics a Graphics2D (upcasting) 06 Graphics2D g2 = (Graphics2D)g; 07 08 /* Rectangulo simple con valores default de java2d */ 09 rectangulo = new Rectangle2D.Float(50, 50, 300, 25); 10 g2.draw(rectangulo); 11 12 /* Rectangulo con borde a color */ 13 g2.setColor(Color.GREEN); 14 rectangulo = new Rectangle2D.Float(50, 100, 300, 25); 15 g2.draw(rectangulo); 16 17 /* Rectangulo con borde a color y tipo de linea mas gruesa */ 18 g2.setColor(Color.RED); 19 rectangulo = new Rectangle2D.Float(50, 150, 300, 25); 20 Stroke pincel = new BasicStroke(5.0f, BasicStroke.CAP_ROUND, 21 BasicStroke.JOIN_MITER); 22 g2.setStroke(pincel); 23 g2.draw(rectangulo); 24 25 /* Rectangulo con relleno */ 26 g2.setColor(Color.DARK_GRAY); 27 rectangulo = new Rectangle2D.Float(50, 200, 300, 25); 28 g2.fill(rectangulo); 29 30 /* Rectangulo con canal alfa */ 31 // dibujamos un rectangulo de color amarillo y encima otro de color rojo 32 // sin transparencia 33 g2.setColor(Color.YELLOW); 34 rectangulo = new Rectangle2D.Float(150, 240, 100, 50); 35 g2.fill(rectangulo); 36 g2.setColor(Color.BLACK); 37 rectangulo = new Rectangle2D.Float(150, 240, 100, 50); 38 g2.draw(rectangulo); 39 g2.setColor(Color.RED); 40 rectangulo = new Rectangle2D.Float(50, 250, 300, 25); 41 g2.fill(rectangulo); 42 43 //aplicando transparencia 44 g2.setColor(Color.YELLOW); 45 rectangulo = new Rectangle2D.Float(150, 310, 100, 50); 46 g2.fill(rectangulo); 47 g2.setColor(Color.BLACK); 48 rectangulo = new Rectangle2D.Float(150, 310, 100, 50); 49 g2.draw(rectangulo); 50 g2.setColor(Color.RED); 51 rectangulo = new Rectangle2D.Float(50, 320, 300, 25); 52 AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); 53 g2.setComposite(ac); 54 g2.fill(rectangulo); 55 56 /* por ultimo dibujamos un texto */ 57 g2.setColor(Color.GREEN); 58 g2.setFont(new Font("Arial", Font.ITALIC, 24)); 59 g2.drawString("Java2D by Mouse", 50, 440); 60 }
01 import java.awt.*; 02 import java.awt.geom.*; 03 import java.awt.image.*;