QBASICBOOK.ru: сайт про QB64

Опубликовано: 2020-04-27 08:00:00

График функции вида Z = F(X, Y)

Программа строит график функции Z = F(X, Y) в виде прозрачной сетки.

Рассмотрим исходный текст программы:


  1. REM PHUCKER_COPYRIGHT
  2. 'FROM SCIENCE.CLANBB.RU WITH LOVE
  3. DECLARE FUNCTION F! (X!, Y!)
  4. SCREEN 12
  5. PI = 3.141592
  6. X0 = 320: Y0 = 240 'EKRANNOYE POLOZHENIYE PROYEKTSII NACHALA KOORDINAT
  7. M = 20 'MASSHTABNYY KOEFFITSIYENT DLYA OSEY X, Y, Z. POKAZYVAYET
  8. '  SKOLKIM PIKSELAM RAVEN YEDINICHNYY OTREZOK.
  9. ALPHA = -.3 * PI: BETA = .1 * PI 'UGLY POVOROTA PROSTRANSTVA XYZ VOKRUG
  10. '  OSEY X I Y. UKAZYVAYUTSYA V RADIANAKH.
  11. MINX = -10: MAXX = 10 'OGRANICHENIYA PRYAMOUGOLNOY OBLASTI
  12. MINY = -10: MAXY = 10 '  PO OSYAM X I Y.
  13. KOLX = 32: KOLY = 32 'KOLICHESTVO RAZBIYENIY SETKI PO OSYAM X I Y.
  14. KOLX2 = 1024: KOLY2 = 1024 'KOLICHESTVO TOCHEK DLYA POSTROYENIYA
  15. '  "PRUTYEV" SETKI PO OSYAM X I Y.
  16. 'SINUSY I KOSINUSY UGLOV ALPHA I BETA.
  17. COSA = COS(ALPHA): SINA = SIN(ALPHA)
  18. COSB = COS(BETA): SINB = SIN(BETA)
  19. 'SHAGI MEZHDU "PRUTYAMI" SETKI PO OSYAM X I Y.
  20. DX = (MAXX - MINX) / KOLX: DY = (MAXY - MINY) / KOLY
  21. 'SHAGI MEZHDU TOCHKAMI POSTROYENIYA "PRUTYEV".
  22. DX2 = (MAXX - MINX) / KOLX2: DY2 = (MAXY - MINY) / KOLY2
  23. 'DVUKHUROVNEVYY TSIKL POSTROYENIYA "PRUTYEV" SETKI,
  24. '  PARALLELNYKH XZ.
  25. FOR Y = MINY TO MAXY * 1.001 STEP DY
  26.     FOR X = MINX TO MAXX * 1.001 STEP DX2
  27.         Z = F(X, Y)
  28.         'BLOK PREOBRAZOVANIYA KOORDINAT PROSTRANSTVA.
  29.         'SCHITAYEM, CHTO PROIZOSHLI POVOROTY TOCHEK PROSTRANSTVA
  30.         'VOKRUG OSEY X I Y NA UGLY ALPHA I BETA SOOTVETSTVENNO.
  31.         Y2 = Y * COSA - Z * SINA
  32.         Z2 = Y * SINA + Z * COSA
  33.         X2 = X
  34.         'Z3 = Z2 * COSB - X2 * SINB
  35.         X3 = Z2 * SINB + X2 * COSB
  36.         Y3 = Y2
  37.         PSET (X0 + X3 * M, Y0 - Y3 * M)
  38.     NEXT X
  39. NEXT Y
  40. 'DVUKHUROVNEVYY TSIKL POSTROYENIYA "PRUTYEV" SETKI,
  41. '  PARALLELNYKH YZ.
  42. FOR X = MINX TO MAXX * 1.001 STEP DX
  43.     FOR Y = MINY TO MAXY * 1.001 STEP DY2
  44.         Z = F(X, Y)
  45.         'BLOK PREOBRAZOVANIYA KOORDINAT PROSTRANSTVA.
  46.         'SCHITAYEM, CHTO PROIZOSHLI POVOROTY TOCHEK PROSTRANSTVA
  47.         'VOKRUG OSEY X I Y NA UGLY ALPHA I BETA SOOTVETSTVENNO.
  48.         Y2 = Y * COSA - Z * SINA
  49.         Z2 = Y * SINA + Z * COSA
  50.         X2 = X
  51.         'Z3 = Z2 * COSB - X2 * SINB
  52.         X3 = Z2 * SINB + X2 * COSB
  53.         Y3 = Y2
  54.         PSET (X0 + X3 * M, Y0 - Y3 * M)
  55.     NEXT Y
  56. NEXT X
  57. 'URAVNENIYE POVERKHNOSTI Z=F(X,Y).
  58. FUNCTION F (X, Y)
  59. F = COS(SQR(X ^ 2 + Y ^ 2))
  60. END FUNCTION

Рисунок 1 – Исходный текст для графика функции вида Z = F(X, Y)

Рисунок 1 – Исходный текст для графика функции вида Z = F(X, Y)

Рисунок 2 – Результат построения графика функции вида Z = F(X, Y)

Рисунок 2 – Результат построения графика функции вида Z = F(X, Y)

Спасибо за прочтение этой статьи.

 

Прикрепленные файлы:

< Предыдущая статья
Фракталы STARS и MARTIN
Следующая статья >
Аналоговые часы

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.