double r= 1.0 - halfgap*(1.0 - sin(theta/2.0));
return Point(r*sin(theta),
-r*cos(theta),
double r= 1.0 - halfgap*(1.0 - sin(theta/2.0));
return Point(r*sin(theta),
-r*cos(theta),
// The second end is oriented towards [0,-1,0]
Point MoebiusEnfoldment::edgepoint(double t) {
// The second end is oriented towards [0,-1,0]
Point MoebiusEnfoldment::edgepoint(double t) {
double sizehere= sqrt(1-t*t);
return Point((u*2.0-1.0) * sizehere,
t,
double sizehere= sqrt(1-t*t);
return Point((u*2.0-1.0) * sizehere,
t,
- double theta= (.5-u)*2*PI;
- Bezier bx(sin(theta*.5), -theta/PI, 0, 0);
+ double theta= (.5-u)*2*M_PI;
+ Bezier bx(sin(theta*.5), -theta/M_PI, 0, 0);
double fudge= (.5-u)*(.5-u)*4*cos(theta*.5);
Bezier by(-cos(theta*.5), 0,
cos(theta)*ypushiness + fudge*ypushiness,
double fudge= (.5-u)*(.5-u)*4*cos(theta*.5);
Bezier by(-cos(theta*.5), 0,
cos(theta)*ypushiness + fudge*ypushiness,