home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / zkuste / matemat / Vyssi / FOURIER.ZIP / exmpl-2 / cpp / mainfrm.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-09  |  6.3 KB  |  191 lines

  1. /*===========================================================
  2.  Please note, that the program FOURSYNT uses the unit RChart,
  3.  which is not supplied with the FOURIER package. If you
  4.  don't have it, you can download the shareware version from
  5.  one of the following WWW sites:
  6.      http://qspr03.tuwien.ac.at/lo/
  7.      http://www.lohninger.com/
  8.  ===========================================================*/
  9.  
  10.  
  11. //---------------------------------------------------------------------------
  12. #include <vcl\vcl.h>
  13. #pragma hdrstop
  14.  
  15. #include "mainfrm.h"
  16. #include "math.h"
  17. //---------------------------------------------------------------------------
  18. #pragma link "RChart"
  19. #pragma link "Fourier"
  20. #pragma resource "*.dfm"
  21. TForm1 *Form1;
  22.  
  23. bool UpdateSignal;
  24.   
  25. //---------------------------------------------------------------------------
  26. __fastcall TForm1::TForm1(TComponent* Owner)
  27.     : TForm(Owner)
  28. {
  29. }
  30. //---------------------------------------------------------------------------
  31. void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
  32. {
  33. int i, j;
  34.  
  35. FastFourier1->Clear();
  36. FastFourier1->RealSpec[1] = 0.01*ScrollBar1->Position*FastFourier1->SpectrumSize;
  37. FastFourier1->RealSpec[2] = 0.01*ScrollBar2->Position*FastFourier1->SpectrumSize;
  38. FastFourier1->RealSpec[3] = 0.01*ScrollBar3->Position*FastFourier1->SpectrumSize;
  39. FastFourier1->RealSpec[4] = 0.01*ScrollBar4->Position*FastFourier1->SpectrumSize;
  40. FastFourier1->RealSpec[5] = 0.01*ScrollBar5->Position*FastFourier1->SpectrumSize;
  41. FastFourier1->RealSpec[6] = 0.01*ScrollBar6->Position*FastFourier1->SpectrumSize;
  42. FastFourier1->RealSpec[7] = 0.01*ScrollBar7->Position*FastFourier1->SpectrumSize;
  43. FastFourier1->RealSpec[8] = 0.01*ScrollBar8->Position*FastFourier1->SpectrumSize;
  44. FastFourier1->ImagSpec[1] = 0.01*ScrollBar9->Position*FastFourier1->SpectrumSize;
  45. FastFourier1->ImagSpec[2] = 0.01*ScrollBar10->Position*FastFourier1->SpectrumSize;
  46. FastFourier1->ImagSpec[3] = 0.01*ScrollBar11->Position*FastFourier1->SpectrumSize;
  47. FastFourier1->ImagSpec[4] = 0.01*ScrollBar12->Position*FastFourier1->SpectrumSize;
  48. FastFourier1->ImagSpec[5] = 0.01*ScrollBar13->Position*FastFourier1->SpectrumSize;
  49. FastFourier1->ImagSpec[6] = 0.01*ScrollBar14->Position*FastFourier1->SpectrumSize;
  50. FastFourier1->ImagSpec[7] = 0.01*ScrollBar15->Position*FastFourier1->SpectrumSize;
  51. FastFourier1->ImagSpec[8] = 0.01*ScrollBar16->Position*FastFourier1->SpectrumSize;
  52. if (UpdateSignal == true)
  53.   {
  54.   FastFourier1->InverseTransform();
  55.   RChart1->ClearGraf();
  56.   RChart1->DataColor =clNavy;
  57.   RChart1->MoveTo (1,FastFourier1->RealSpec[1]);
  58.   for (i=1; i<=512; i++)
  59.     {
  60.     j = 1 + fmod((i-1),256);
  61.     RChart1->DrawTo (i,FastFourier1->RealSpec[j]);
  62.     }
  63.   RChart1->ShowGraf();
  64.   };
  65. }
  66. //---------------------------------------------------------------------------
  67. void __fastcall TForm1::BButResetClick(TObject *Sender)
  68. {
  69. UpdateSignal = false;
  70. ScrollBar1->Position = 0;
  71. ScrollBar2->Position = 0;
  72. ScrollBar3->Position = 0;
  73. ScrollBar4->Position = 0;
  74. ScrollBar5->Position = 0;
  75. ScrollBar6->Position = 0;
  76. ScrollBar7->Position = 0;
  77. ScrollBar8->Position = 0;
  78. ScrollBar9->Position = 0;
  79. ScrollBar10->Position = 0;
  80. ScrollBar11->Position = 0;
  81. ScrollBar12->Position = 0;
  82. ScrollBar13->Position = 0;
  83. ScrollBar14->Position = 0;
  84. ScrollBar15->Position = 0;
  85. ScrollBar16->Position = 0;
  86. UpdateSignal = true;
  87. ScrollBar1Change (Sender);
  88. }
  89. //---------------------------------------------------------------------------
  90. void __fastcall TForm1::FormCreate(TObject *Sender)
  91. {
  92. UpdateSignal = True;    
  93. }
  94. //---------------------------------------------------------------------------
  95. void __fastcall TForm1::BButSquareClick(TObject *Sender)
  96. {
  97. UpdateSignal = false;
  98. ScrollBar1->Position = 0;
  99. ScrollBar2->Position = 100;
  100. ScrollBar3->Position = 0;
  101. ScrollBar4->Position = -33;
  102. ScrollBar5->Position = 0;
  103. ScrollBar6->Position = 20;
  104. ScrollBar7->Position = 0;
  105. ScrollBar8->Position = -16;
  106. ScrollBar9->Position = 0;
  107. ScrollBar10->Position = 0;
  108. ScrollBar11->Position = 0;
  109. ScrollBar12->Position = 0;
  110. ScrollBar13->Position = 0;
  111. ScrollBar14->Position = 0;
  112. ScrollBar15->Position = 0;
  113. ScrollBar16->Position = 0;
  114. UpdateSignal = true;
  115. ScrollBar1Change (Sender);
  116. }
  117. //---------------------------------------------------------------------------
  118. void __fastcall TForm1::BButSawClick(TObject *Sender)
  119. {
  120. UpdateSignal = false;
  121. ScrollBar1->Position = 0;
  122. ScrollBar2->Position = 0;
  123. ScrollBar3->Position = 0;
  124. ScrollBar4->Position = 0;
  125. ScrollBar5->Position = 0;
  126. ScrollBar6->Position = 0;
  127. ScrollBar7->Position = 0;
  128. ScrollBar8->Position = 0;
  129. ScrollBar9->Position = 0;
  130. ScrollBar10->Position = 100;
  131. ScrollBar11->Position = 50;
  132. ScrollBar12->Position = 33;
  133. ScrollBar13->Position = 25;
  134. ScrollBar14->Position = 20;
  135. ScrollBar15->Position = 16;
  136. ScrollBar16->Position = 14;
  137. UpdateSignal = true;
  138. ScrollBar1Change (Sender);
  139. }
  140. //---------------------------------------------------------------------------
  141. void __fastcall TForm1::BButExitClick(TObject *Sender)
  142. {
  143. Close();
  144. }
  145. //---------------------------------------------------------------------------
  146. void __fastcall TForm1::BButHalfSineClick(TObject *Sender)
  147. {
  148. UpdateSignal = false;
  149. ScrollBar1->Position = 63;
  150. ScrollBar2->Position = 100;
  151. ScrollBar3->Position = 42;
  152. ScrollBar4->Position = 0;
  153. ScrollBar5->Position = -8;
  154. ScrollBar6->Position = 0;
  155. ScrollBar7->Position = 4;
  156. ScrollBar8->Position = 0;
  157. ScrollBar9->Position = 0;
  158. ScrollBar10->Position = 0;
  159. ScrollBar11->Position = 0;
  160. ScrollBar12->Position = 0;
  161. ScrollBar13->Position = 0;
  162. ScrollBar14->Position = 0;
  163. ScrollBar15->Position = 0;
  164. ScrollBar16->Position = 0;
  165. UpdateSignal = true;
  166. ScrollBar1Change (Sender);
  167. }
  168. //---------------------------------------------------------------------------
  169. void __fastcall TForm1::BButTriangleClick(TObject *Sender)
  170. {
  171. UpdateSignal = false;
  172. ScrollBar1->Position = 0;
  173. ScrollBar2->Position = 0;
  174. ScrollBar3->Position = 0;
  175. ScrollBar4->Position = 0;
  176. ScrollBar5->Position = 0;
  177. ScrollBar6->Position = 0;
  178. ScrollBar7->Position = 0;
  179. ScrollBar8->Position = 0;
  180. ScrollBar9->Position = 0;
  181. ScrollBar10->Position = 100;
  182. ScrollBar11->Position = 0;
  183. ScrollBar12->Position = -11;
  184. ScrollBar13->Position = 0;
  185. ScrollBar14->Position = 4;
  186. ScrollBar15->Position = 0;
  187. ScrollBar16->Position = -2;
  188. UpdateSignal = true;
  189. ScrollBar1Change (Sender);
  190. }
  191. //---------------------------------------------------------------------------