// SpeedTestCpp.cpp : Defines the entry point for the console application. // #include "stdafx.h" class Aux { public: double x, y, z; double Sfera() { return x*x + y*y + z*z; } double XPlaneFunc() { return x;} double YPlaneFunc() { return y;} double ZZZFunc() { double xmy = x - y; //return xmy - Math.Round(xmy, 1); return xmy - floor(xmy + 0.5); } double Spiral_() { double xk=x*20; double a=0.2; double b=1.5; double y1=y*b-a*sin(xk); double z1=z*b-a*cos(xk); return y1*y1 + z1*z1; } bool Golova() { return XPlaneFunc() < 0.0 && Sfera() < 1.0 && !Shliz(); } bool Spiral() { return XPlaneFunc() > 0.0 && XPlaneFunc() < 1.75 && abs(Spiral_()) < 0.5; } bool Shliz() { return XPlaneFunc() < -0.4 && YPlaneFunc() < 0.1 && YPlaneFunc() > -0.1; } bool Strokes() { return (abs(0.5 - XPlaneFunc()) < 0.02 || (XPlaneFunc() > 0.5 && abs(ZZZFunc()) < 0.005)) && !Spiral() && !Golova(); } bool Wall() { return XPlaneFunc() > 0.5 && !Strokes() && !Spiral(); } unsigned int GetColor() { if ( Golova() ) return 1; if ( Spiral() ) return 2; if ( Strokes() )return 3; if ( Wall() ) return 4; return 0; } }; int _tmain(int argc, _TCHAR* argv[]) { Aux a; time_t t1, t2; time(&t1); for(int i = 0; i < 100; i++) { a.z = 0; for(a.y = -1.5; a.y < 1.5; a.y += 0.001) { for(a.x = -1; a.x < 2; a.x += 0.001) { int i = a.GetColor(); } } } time(&t2); cout << "elapsed: " << difftime(t2, t1) << " seconds." << endl; return 0; }