Guest User

Untitled

a guest
Oct 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. void GenerateTerrain(double* arr,double pnt1,double pnt2,int len)
  2. {
  3.     str.open("Data.txt");
  4.     double* pOrig=arr;
  5.     srand((unsigned)time(0));
  6.     for(int i=0; i<len; i++)
  7.     {
  8.         (*arr)=(double)rand()/(double)RAND_MAX;
  9.         arr++;
  10.     }
  11.     arr=pOrig;
  12.     str<<"RANDOM##\n";
  13.     for(int i=0; i<len; i++)
  14.     {
  15.         str<<i<<" : "<<*arr<<"\n";
  16.         arr++;
  17.     }
  18.     Smooth(1.0002,pOrig,len);
  19.     str.flush();
  20.     str.close();
  21. }
  22.  
  23. void Smooth(double smoothness,double* ptr,int len)
  24. {
  25.     double* lPtr=0;
  26.     double diff=50000;
  27.     while(diff/len>smoothness)
  28.     {
  29.         lPtr=ptr+1;
  30.         diff=0;
  31.  
  32.         for(int i=1; i<(len-1); i++)
  33.         {
  34.             (*lPtr)=((*lPtr)+(*(lPtr+1)))/2;
  35.             if(*lPtr>*(lPtr-1))
  36.             {
  37.                 diff+=(*lPtr)/(*(lPtr-1));
  38.             }
  39.             else
  40.             {
  41.                 diff+=(*lPtr-1)/(*(lPtr));
  42.             }
  43.             lPtr++;
  44.         }
  45.     }
  46.     lPtr=ptr;
  47.     str<<"SMOOTHED\n";
  48.     for(int i=0; i<(len-1); i++)
  49.     {
  50.         str<<i<<" : "<<*lPtr<<"DIFF: " << *lPtr-(*(lPtr+1)) <<"\n";
  51.         lPtr++;
  52.     }
  53.  
  54. }
Add Comment
Please, Sign In to add comment