Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <math.h>
- using namespace std;
- #define pi 3.14159265
- #define radian ( 180 / pi )
- double factorial( double n ) {
- if ( n < 1 ) {
- return 1;
- }
- double r = 1;
- for( double i = 1; i <= n; i ++ ) {
- r *= i;
- }
- return r;
- }
- double exponent( double n , double e ) {
- double r = n;
- for( double i = 0; i < e - 1; i ++ ) {
- r *= n;
- }
- return r;
- }
- double sign( double n ) {
- return ( n > 0 ) - ( n < 0 );
- }
- double sqr( double x ) {
- return x * x;
- }
- double pointdir( double x1 , double y1 , double x2 , double y2 ) {
- return atan2( y2 - y1 , x2 - x1 ) * radian;
- }
- double pointdist( double x1 , double y1 , double x2 , double y2 ) {
- return sqrt( sqr( x2 - x1 ) + sqr( y2 - y1 ) );
- }
- double pointdist3d( double x1 , double y1 , double z1 , double x2 , double y2 , double z2 ) {
- return sqrt( sqr( x2 - x1 ) + sqr( y2 - y1 ) + sqr( z2 - z1 ) );
- }
- double lendirx( double l , double d ) {
- return l * cos( d * radian );
- }
- double lendiry( double l , double d ) {
- return l * sin( d * radian );
- }
- double lendirz( double l , double d ) {
- return l * sin( d * radian );
- }
- double clamp( double val , double min , double max ) {
- return ( ( val <= min ) * min ) + ( ( val >= max ) * max ) + ( ( val > min && val < max ) * val );
- }
- double neg( double x ) {
- return x * ( ( ( x < 0 ) * 1 ) + ( ( x > 0 ) * -1 ) );
- }
- double aspect_ratio( double w , double h ) {
- return w / h;
- }
- double scale_factor( double w ) {
- return 1 / w;
- }
- double readbit( double byt , double bit ) {
- return ( int( byt ) & int( exponent( 2 , 7 - bit ) ) ) > 0;
- }
- double buildbit( double bt1 , double bt2 , double bt3 , double bt4 , double bt5 , double bt6 , double bt7 , double bt8 ) {
- return ( 128 * bt1 ) + ( 64 * bt2 ) + ( 32 * bt3 ) + ( 16 * bt4 ) + ( 8 * bt5 ) + ( 4 * bt6 ) + ( 2 * bt7 ) + ( 1 * bt8 );
- }
- double fixrotation( double rot ) {
- int fix = rot + ( ( rot > 360 ) * -360 ) + ( ( rot < 0 ) * 360 );
- if ( fix > 360 || fix < 0 ) { return fixrotation( fix ); }
- return fix;
- }
- int main() {
- cout << pointdir( 0 , 0 , -1 , 1 ) << endl;
- cout << pointdist( 0 , 0 , 5 , 5 ) << endl;
- cout << pointdist3d( 0 , 0 , 0 , 5 , 5 , 5 ) << endl;
- cout << sign( 10 ) << endl;
- cout << exponent( 5 , 2 ) << endl;
- cout << factorial( 5 ) << endl;
- cout << sqr( 6 ) << endl;
- cout << clamp( 8 , 0 , 16 ) << endl;
- cout << neg( -1 ) << neg( 1 ) << endl;
- cout << buildbit( 0 , 1 , 1 , 0 , 1 , 0 , 0 , 1 ) << endl;
- cout << readbit( 192 , 0 ) << endl;
- cout << fixrotation( 365 * 3 ) << endl;
- double xx;
- cin >> xx;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement