Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. /*biblioteki*/
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <math.h>
  6. #include <string.h>
  7.  
  8. /*funkcje u¿yte w programie*/
  9.  
  10. /* czyszczenie bufora*/
  11. void clear_buffer(char buffer[25][80])
  12. {
  13. memset(buffer, ' ', 80*25);
  14. }
  15.  
  16. /*wstawianie znaku do bufora, w komórkê o wspó³rzêdnych x i y*/
  17. void put_to_buffer(char buffer[25][80], float x, float y, char p)
  18. {
  19. int row = 15*y+12; /*odpowiednie wyliczenie “row” i “col” aby lemniskata Gerona zaczyna³a siê na œrodku uk³adu wspó³rzêdnych*/
  20. int col = 15*x+40;
  21.  
  22. buffer[row][col] = p;
  23. }
  24.  
  25. /* wyœwietlanie bufora*/
  26. void print_buffer(char buffer[25][80])
  27. {
  28. int i, j;
  29.  
  30. for(i=0; i<25; i++) {
  31. for(j=0; j<80; j++) {
  32. printf("%c", buffer[i][j]);
  33. }
  34. printf("\n");
  35. }
  36. }
  37.  
  38. /*obliczenie wartoœci “x” i “y” w zale¿noœci od parametru “fi” trygonometrycznie, tutaj sinus i cosinus dostaj¹ argumenty w radianach*/
  39.  
  40. float geron_x (int fi)
  41. {
  42. return (fi-sin(fi)); }
  43.  
  44. float geron_y (int fi)
  45. {
  46. return (1-cos(fi));
  47. }
  48.  
  49. /*obliczanie wspó³rzêdnych komórki dla litery i wstawianie jej do bufora*/
  50. void letter(char buffer[25][80], int fi, char p)
  51. {
  52. float x, y;
  53.  
  54. x = geron_x(fi);
  55. y = geron_y(fi);
  56.  
  57. put_to_buffer(buffer, x, y, p);
  58. }
  59. /*obliczanie wspó³rzêdnych komórki dla wszystkich liter i wstawianie ich do bufora*/
  60. void letters (char buffer[25][80], int fi, char *p, int m)
  61. {
  62. int i;
  63.  
  64. for(i=0; i<m; i++) {
  65.  
  66. letter(buffer, fi+i*5, p[i]);
  67. }
  68. }
  69.  
  70. int main()/*funkcja “main”, w której s¹ realizowane wszystkie funkcje wczeœniej zdefiniowane*/
  71. {
  72. int m, fi;
  73. char *name = "Olek";
  74.  
  75.  
  76. for(m=strlen(name); m>0; m--) { /*dla liczby znaków w kolejnej iteracji*/
  77. for(fi=0;fi<3;fi++) { /*dla kolejnych wartoœci kata fi*/
  78.  
  79. char buffer[25][80]; /*deklaracja bufora*/
  80.  
  81. clear_buffer(buffer); /*wyczyszczenie bufora*/
  82.  
  83. letters(buffer, fi, name, m); /*obliczenie wspó³rzêdnych liter i wstawienie ich do bufora*/
  84.  
  85. print_buffer(buffer); /*wyœwietlenie bufora*/
  86.  
  87. system("cls");
  88.  
  89. usleep(20000); /*zatrzymanie wykonywania program na czas wyœwietlenia jednej klatki*/
  90.  
  91. }
  92. }
  93. /*wyœwietlenie informacji o zakoñczeniu dzia³ania programu*/
  94. printf("Program zakonczyl dzialanie, Aleksander Droszcz, 1E6\n");}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement