Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1.     public void updateEdges() {
  2.         edgeList.clear();
  3.         int n = model.getN();
  4.         int m = model.getM();
  5.         int k = model.getK();
  6.  
  7.         double a = model.getA();
  8.         double b = model.getB();
  9.         double c = model.getC();
  10.         double d = model.getD();
  11.  
  12.         Point3D[] lastPointsN = new Point3D[m + 1];
  13.         for (int i = 0; i <= n; i++) {
  14.             double delta = (double)i / n;
  15.             double u = a * (1. - delta) + b * delta;
  16.  
  17.             Point3D lastPointM = null;
  18.             for (int j = 0; j <= m * k; j++) {
  19.                 double dTheta = (double) j / (m * k);
  20.                 double v = c * (1. - dTheta) + d * dTheta;
  21.                 Point2D.Double p = spline.get(u);
  22.                 if (lastPointM == null) {
  23.                     lastPointM = new Point3D(
  24.                             p.getY() * Math.cos(v),
  25.                             p.getY() * Math.sin(v),
  26.                             p.getX()
  27.                     );
  28.  
  29.                     if (j % k == 0) {
  30.                         int index = j / k;
  31.                         if (lastPointsN[index] == null) {
  32.                             lastPointsN[index] = lastPointM;
  33.                             continue;
  34.                         }
  35.  
  36.                         edgeList.add(new Edge3D(lastPointsN[index], lastPointM));
  37.                         lastPointsN[index] = lastPointM;
  38.                     }
  39.  
  40.                     continue;
  41.                 }
  42.                 Point3D currentPoint = new Point3D(p.getY() * Math.cos(v),
  43.                         p.getY() * Math.sin(v),
  44.                         p.getX()
  45.                 );
  46.  
  47.                 edgeList.add(new Edge3D(lastPointM, currentPoint));
  48.                 lastPointM = currentPoint;
  49.  
  50.                 if (j % k == 0) {
  51.                     int index = j / k;
  52.                     if (lastPointsN[index] == null) {
  53.                         lastPointsN[index] = currentPoint;
  54.                         continue;
  55.                     }
  56.  
  57.                     edgeList.add(new Edge3D(lastPointsN[index], currentPoint));
  58.                     lastPointsN[index] = currentPoint;
  59.                 }
  60.             }
  61.         }
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement