Normand Briere
2018-07-03 02e145cb923d601395acc7f15ae9e13f85ef2fbb
Torus.java
....@@ -61,16 +61,25 @@
6161 if (v == 1)
6262 v = 0;
6363
64
- double uAng = LA.toRadians((1-u) * 360);
65
- double vAng = LA.toRadians(v * 360);
66
- double x = (double)Math.cos(uAng) * (major + (double)Math.cos(vAng) * minor);
67
- double y = (double)Math.sin(vAng) * minor;
64
+ double uAng = u * 2 * Math.PI;
65
+ double vAng = v * 2 * Math.PI;
66
+ double cosua = Math.cos(uAng);
67
+ double sinua = Math.sin(uAng);
68
+ double cosva = Math.cos(vAng);
69
+ double sinva = Math.sin(vAng);
70
+
71
+ double radius = (major + cosva * minor);
72
+ double x = cosua * radius;
73
+ double y = sinva * minor;
6874 if (Math.abs(y) < 1E-10)
6975 y = 0; // hashtable issue
70
- double z = (double)Math.sin(uAng) * (major + (double)Math.cos(vAng) * minor);
76
+
77
+ double z = sinua * radius;
7178 cVector tPos = LA.newVector(x, y, z);
72
- double xx = (double)(Math.cos(uAng) * Math.cos(vAng)) * minor;
73
- double zz = (double)(Math.sin(uAng) * Math.cos(vAng)) * minor;
79
+
80
+ double xx = cosua * cosva * minor;
81
+ double zz = sinua * cosva * minor;
82
+
7483 cVector tNorm = LA.newVector(xx, y, zz);
7584 Vertex temp = new Vertex(tPos);
7685 //temp.pos = tPos; // useless new