pic.png
package DataCalculations;
import java.lang.Math;
public class Multilateration {
public double calcCord(int rNum, char cord) {
OrgData og = new OrgData();
double ti = og.getValue(rNum), tk = og.getValue(rNum + 1), tj = og
.getValue(rNum + 2), tl = og.getValue(rNum + 3); // invoke toa figures from database
System.out.println("\nti="+ti);
System.out.println("\ntk="+tk);
System.out.println("\ntj="+tj);
System.out.println("\ntl="+tl);
double xi = 1, xk = 0, xj = 10, xl =0;
double yi = 1, yk = 1, yj = 0, yl = 0;
double zi = 0, zk = 0, zj = 0, zl = 0;
double xji = xj - xi;
double xki = xk - xi;
double xjk = xj - xk;
double xlk = xl - xk;
double xik = xi = xk;
double yji = yj - yi;
double yki = yk - yi;
double yjk = yj - yk;
double ylk = yl - yk;
double yik = yi - yk;
double zji = zj - zi;
double zki = zk - zi;
double zik = zi - zk;
double zjk = zj - zk;
double zlk = zl - zk;
double rij = Math.abs((10*(ti - tj))/33);
double rik = Math.abs((10*(ti - tk))/33);
double rkj = Math.abs((10*(tk - tj))/33);
double rkl = Math.abs((10*(tk - tl))/33);
double s9 = rik * xji - rij * xki;
double s10 = rij * yki - rik * yji;
double s11 = rik * zji - rij * zki;
double s12 = (rik
* (rij * rij + xi * xi - xj * xj + yi * yi - yj * yj + zi * zi - zj
* zj) - rij
* (rik * rik + xi * xi - xk * xk + yi * yi - yk * yk + zi * zi - zk
* zk)) / 2;
double s13 = rkl * xjk - rkj * xlk;
double s14 = rkj * ylk - rkl * yjk;
double s15 = rkl * zjk - rkj * zlk;
double s16 = (rkl
* (rkj * rkj + xk * xk - xj * xj + yk * yk + zk * zk - zj * zj) - rkj
* (rkl * rkl + xk * xk - xl * xl + yk * yk - yl * yl + zk * zk - zl
* zl)) / 2;
double a = s9 / s10;
double b = s11 / s10;
double c = s12 / s10;
double d = s13 / s14;
double e = s15 / s14;
double f = s16 / s14;
double g = (e - b) / (a - d);
double h = (f - c) / (a - d);
double i = (a * g) + b;
double j = (a * h) + c;
double k = rik * rik + xi * xi - xk * xk + yi * yi - yk * yk + zi - zk
* zk + 2 * j * yki;
double l = 2 * (g * xki + i * yki + zki);
double m = 4 * rik * rik * (g * g + i * i + l) - l * l;
double n = 8 * rik * rik * (g * (xi - h) + i * (yi - j) + zi) + 2 * l
* k;
double o = 4 * rik * rik
* ((xi - h) * (xi - h) + (yi - j) * (yi - j) + zi * zi) - k * k;
double s28 = n / (2 * m);
double s29 = (o / m);
double s30 = (s28 * s28) - s29;
double root = Math.sqrt(s30);
if (cord == 'x'){
int x;
x = this.getX(g, zl, h);
System.out.println("\nx="+x);
return x;
}
if (cord == 'y'){
int y;
y = this.getY(a, this.getX(g, zl, h), b, this.getZ(s28,root), c);
System.out.println("\ny="+y);
return y;
}
if (cord == 'z'){
int z;
z = this.getZ(s28,root);
System.out.println("\nz="+z);
return z;
}
return -1;
}
int getZ(double s28, double root) {
int z1 = (int) (s28 + root);
return z1;
}
// int z2=(int)(s28-root); //
int getX(double g, double z1, double h) {
int x1 = (int) (g * z1 + h);
return x1;
}
// int x2=(int)(g*z2+h); //
int getY(double a, double x1, double b, double z1, double c) {
int y1 = (int) (a * x1 + b * z1 + c);
return y1;
}
// int y2=(int)(a*x2+b*z2+c);
}
A-Synthesizable-VHDL-Model-of-th.pdf
Your drawing has X1, X2, X3, X4
And your program has i, j, k, l
l (el) in indistinguishable from 1 (one) in this font.
And your values don't seem to match.
double xi = 1, xk = 0, xj = 10, xl =0;
double yi = 1, yk = 1, yj = 0, yl = 0;
double zi = 0, zk = 0, zj = 0, zl = 0;
Shouldn't all the values be 0 or 10. You have three 1's in there.
If you are experiencing a similar issue, please ask a related question
Title | # Comments | Views | Activity |
---|---|---|---|
how do i compare an object based on two fields | 6 | 49 | |
Spring Framework HTTPSession management | 1 | 24 | |
Groovy problem when using SOAPUI : DispatchException occurred | 7 | 29 | |
MySQL on Tomcat | 8 | 30 |
Join the community of 500,000 technology professionals and ask your questions.
Connect with top rated Experts
16 Experts available now in Live!