/*
* 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
}