/* * BeadGeometry.java * * Created on April 28, 2008, 3:56 PM */ import java.io.*; import java.text.*; import java.util.regex.*; import java.lang.Math.*; import javax.swing.*; /** * * @author Tyler */ public class BeadGeometry extends javax.swing.JFrame { /** Creates new form BeadGeometry */ public BeadGeometry() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jTextField4 = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); jTextField5 = new javax.swing.JTextField(); jTextField6 = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jTextField7 = new javax.swing.JTextField(); jTextField9 = new javax.swing.JTextField(); jTextField10 = new javax.swing.JTextField(); jLabel12 = new javax.swing.JLabel(); jTextField11 = new javax.swing.JTextField(); jLabel13 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); jLabel15 = new javax.swing.JLabel(); jTextField12 = new javax.swing.JTextField(); jTextField13 = new javax.swing.JTextField(); jTextField14 = new javax.swing.JTextField(); jTextField15 = new javax.swing.JTextField(); jLabel16 = new javax.swing.JLabel(); jLabel17 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); jLabel19 = new javax.swing.JLabel(); jTextField16 = new javax.swing.JTextField(); jTextField17 = new javax.swing.JTextField(); jTextField18 = new javax.swing.JTextField(); jTextField19 = new javax.swing.JTextField(); jLabel21 = new javax.swing.JLabel(); jLabel22 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jLabel20 = new javax.swing.JLabel(); jLabel23 = new javax.swing.JLabel(); jLabel24 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("Filenames"); jLabel2.setText("Full path of working directory"); jTextField2.setText(".txt"); jTextField3.setText(".xeo"); jLabel3.setText("Stretched bead coordinates filename"); jLabel4.setText("Filename of geometry file to be created"); jLabel5.setText("Scaling parameters"); jLabel6.setText("Image pixel spacing (microns)"); jTextField5.setText("4413.0434783"); jTextField6.setText("0"); jLabel7.setText("Slide well spacing (microns), default"); jLabel8.setText("Orientation difference (degrees)"); jLabel9.setText("Common points"); jLabel10.setText("Note: if using less than 3 common points, the remaining points should have duplicate values."); jLabel11.setFont(new java.awt.Font("Tahoma", 1, 11)); jLabel11.setText("BeadGeometry program to create custom Bruker geometry files"); jLabel12.setText("X1 (pixels)"); jLabel13.setText("Y1 (pixels)"); jLabel14.setText("X1 (fractional distance)"); jLabel15.setText("Y1 (fractional distance)"); jLabel16.setText("X2 (pixels)"); jLabel17.setText("Y2 (pixels)"); jLabel18.setText("X2 (fractional distance)"); jLabel19.setText("Y2 (fractional distance)"); jLabel21.setText("Y3 (pixels)"); jLabel22.setText("X3 (fractional distance)"); jButton1.setText("Go!"); jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton1MouseClicked(evt); } }); jLabel20.setText("X3 (pixels)"); jLabel23.setText("Y3 (fractional distance)"); jLabel24.setText("Messages during run:"); jTextArea1.setColumns(20); jTextArea1.setRows(5); jTextArea1.setText("Currently no messages"); jScrollPane1.setViewportView(jTextArea1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jTextField6) .addComponent(jTextField5) .addComponent(jTextField4) .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 107, Short.MAX_VALUE) .addComponent(jTextField3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel11) .addComponent(jLabel3) .addComponent(jLabel4) .addComponent(jLabel7) .addComponent(jLabel8) .addComponent(jLabel6)) .addGap(86, 86, 86)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(10, Short.MAX_VALUE) .addComponent(jLabel10) .addGap(118, 118, 118)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(10, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel24, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel15) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField15, javax.swing.GroupLayout.DEFAULT_SIZE, 61, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTextField9) .addComponent(jTextField7, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel14)) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel13))) .addComponent(jLabel12)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTextField14, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTextField12) .addComponent(jTextField13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel16) .addComponent(jLabel17))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel19) .addComponent(jLabel18) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jButton1))))))) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTextField19, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTextField16) .addComponent(jTextField17) .addComponent(jTextField18)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel22) .addComponent(jLabel20) .addComponent(jLabel23) .addComponent(jLabel21)) .addGap(10, 10, 10)) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 385, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(175, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jLabel2) .addContainerGap(420, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jLabel9) .addContainerGap(487, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jLabel5) .addContainerGap(469, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jLabel1) .addContainerGap(513, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jTextField10, jTextField11, jTextField12, jTextField13, jTextField16}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel11) .addGap(11, 11, 11) .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel10) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel13) .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel14) .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel16)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel17) .addComponent(jTextField13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel18) .addComponent(jTextField14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel20)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel21)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel22) .addComponent(jTextField18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel15) .addComponent(jTextField19, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel23) .addComponent(jLabel19)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel24) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// private void jButton1MouseClicked(java.awt.event.MouseEvent evt) { try{ String WorkingPath = jTextField1.getText(); if (WorkingPath.endsWith("\\") == false | WorkingPath.endsWith("/") == false ) { WorkingPath = WorkingPath + "\\"; } String OutGeoFilename = jTextField3.getText(); BufferedReader inIN = new BufferedReader(new FileReader(WorkingPath + jTextField2.getText())); int INlineCount = 0; do { String lineIN = inIN.readLine(); if (lineIN == null) break; INlineCount++; } while (true); jTextArea1.setText("Currently running"); double PhysicalPixelSpacing = Double.valueOf(jTextField4.getText()).doubleValue(); double PhysicalWellSpacing = Double.valueOf(jTextField5.getText()).doubleValue(); double PlateOriginXa = Double.valueOf(jTextField7.getText()).doubleValue(); double PlateOriginYa = Double.valueOf(jTextField9.getText()).doubleValue(); double PlateOriginXb = Double.valueOf(jTextField12.getText()).doubleValue(); double PlateOriginYb = Double.valueOf(jTextField13.getText()).doubleValue(); double PlateOriginXc = Double.valueOf(jTextField16.getText()).doubleValue(); double PlateOriginYc = Double.valueOf(jTextField17.getText()).doubleValue(); double BrukerOriginXa = Double.valueOf(jTextField10.getText()).doubleValue(); double BrukerOriginYa = Double.valueOf(jTextField11.getText()).doubleValue(); double BrukerOriginXb = Double.valueOf(jTextField14.getText()).doubleValue(); double BrukerOriginYb = Double.valueOf(jTextField15.getText()).doubleValue(); double BrukerOriginXc = Double.valueOf(jTextField18.getText()).doubleValue(); double BrukerOriginYc = Double.valueOf(jTextField19.getText()).doubleValue(); double DegRot = Math.toRadians(Double.valueOf(jTextField6.getText()).doubleValue()); int rownum = -1; double[][] INCoord = new double[INlineCount][2]; LineNumberReader lnr = new LineNumberReader(new FileReader(WorkingPath + jTextField2.getText())); lnr.setLineNumber(1); StreamTokenizer stok = new StreamTokenizer(lnr); stok.parseNumbers(); stok.eolIsSignificant(true); stok.nextToken(); while (stok.ttype != StreamTokenizer.TT_EOF) { double x=0; double y=0; while (stok.ttype != StreamTokenizer.TT_EOF) { for (int colnum=1; colnum<=3; colnum++) { if (colnum==1) {x=stok.nval; } if (colnum==2) {y=stok.nval; } if (colnum==3) {stok.nextToken(); rownum++; break;} stok.nextToken(); } double[] Coord = new double[2]; Coord[0]=x; Coord[1]=y; for (int col=0; col<=1; col++) { INCoord[rownum][col] = Coord[col]; } if (stok.ttype == StreamTokenizer.TT_EOF) {break;} } if (stok.ttype == StreamTokenizer.TT_EOF) {break;} } double[][] PhysicalINCoord = new double[INCoord.length][2]; double PlateOriginX = 0; double PlateOriginY = 0; for (int i = 0; i <= INCoord.length-1; i++) { Double DistA = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXa), 2) + Math.pow((PlateOriginYa - INCoord[i][1]), 2) ); Double DistB = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXb), 2) + Math.pow((PlateOriginYb - INCoord[i][1]), 2) ); Double DistC = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXc), 2) + Math.pow((PlateOriginYc - INCoord[i][1]), 2) ); if (DistA <= DistB && DistA <= DistC) { PlateOriginX = PlateOriginXa; PlateOriginY = PlateOriginYa; } if (DistB <= DistA && DistB <= DistC) { PlateOriginX = PlateOriginXb; PlateOriginY = PlateOriginYb; } if (DistC <= DistA && DistC <= DistB) { PlateOriginX = PlateOriginXc; PlateOriginY = PlateOriginYc; } PhysicalINCoord[i][0] = (INCoord[i][0] - PlateOriginX) * PhysicalPixelSpacing; PhysicalINCoord[i][1] = (PlateOriginY - INCoord[i][1]) * PhysicalPixelSpacing; } double[][] OutCoordTemp = new double[PhysicalINCoord.length][2]; for (int i = 0; i <= INCoord.length-1; i++) { OutCoordTemp[i][0] = PhysicalINCoord[i][0] / PhysicalWellSpacing * 0.086956454545454545; OutCoordTemp[i][1] = PhysicalINCoord[i][1] / PhysicalWellSpacing * 0.086956454545454545; } double[][] OutCoord = new double[PhysicalINCoord.length][2]; for (int i = 0; i <= INCoord.length-1; i++) { Double DistA = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXa), 2) + Math.pow((PlateOriginYa - INCoord[i][1]), 2) ); Double DistB = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXb), 2) + Math.pow((PlateOriginYb - INCoord[i][1]), 2) ); Double DistC = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXc), 2) + Math.pow((PlateOriginYc - INCoord[i][1]), 2) ); if (DistA <= DistB && DistA <= DistC) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXa; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYa; } if (DistB <= DistA && DistB <= DistC) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXb; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYb; } if (DistC <= DistA && DistC <= DistB) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXc; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYc; } } System.out.println(OutCoordTemp[0][0]); System.out.println(OutCoordTemp[0][1]); BufferedWriter outFile = new BufferedWriter(new FileWriter(WorkingPath + OutGeoFilename)); PrintWriter out = new PrintWriter(outFile); out.println(""); out.println(""); out.println(" "); out.print(" "); out.print(" "); String a = " "; DecimalFormat df = new DecimalFormat("#.######"); for (int i=0; i <= INCoord.length-1; i++) { out.print(a); out.print(i); out.print(b); out.print("x_" + (int)INCoord[i][0] + "y_" + (int)INCoord[i][1]); out.print(c); out.print(df.format(OutCoord[i][0])); out.print(d); out.print(df.format(OutCoord[i][1])); out.println(e); } out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(" "); out.println(""); out.close(); jTextArea1.setText("Run has finished"); } catch (IOException e) {System.out.println("Error"); jTextArea1.setText(e.toString());} } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new BeadGeometry().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel22; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField10; private javax.swing.JTextField jTextField11; private javax.swing.JTextField jTextField12; private javax.swing.JTextField jTextField13; private javax.swing.JTextField jTextField14; private javax.swing.JTextField jTextField15; private javax.swing.JTextField jTextField16; private javax.swing.JTextField jTextField17; private javax.swing.JTextField jTextField18; private javax.swing.JTextField jTextField19; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; private javax.swing.JTextField jTextField9; // End of variables declaration }