Преобразование HSV в RGB

  1. 600 REM Преобразование HSV в RGB
  2. 601 REM Входные данные: цвет в HSV
  3. 602 REM   hsv_H% - оттенок (0..360)
  4. 603 REM   hsv_S - насыщенность (0..1)
  5. 604 REM   hsv_V - яркость (0..1)
  6. 605 REM Выходные данные: цвет в RGB
  7. 606 REM  rgb_R% - красный (0..255)
  8. 607 REM  rgb_G% - зелёный (0..255)
  9. 608 REM  rgb_B% - синий (0..255)
  10. 609 IF hsv_S = 0 THEN rgb_R% = hsv_V * 255: rgb_G% = rgb_R%: rgb_B% = rgb_R%: RETURN
  11. 610 h_H = hsv_H% / 60.0: h_i% = h_H: h_f = h_H - h_i%
  12. 611 h_p% = hsv_V * (1 - hsv_S) * 255
  13. 612 h_q% = hsv_V * (1 - hsv_S * h_f) * 255
  14. 613 h_t% = hsv_V * (1 - hsv_S * (1 - h_f)) * 255
  15. 614 IF h_i% = 0 THEN rgb_R% = hsv_V * 255: rgb_G% = h_t%: rgb_B% = h_p%: RETURN
  16. 615 IF h_i% = 1 THEN rgb_R% = h_q%: rgb_G% = hsv_V * 255: rgb_B% = h_p%: RETURN
  17. 616 IF h_i% = 2 THEN rgb_R% = h_p%: rgb_G% = hsv_V * 255: rgb_B% = h_t%: RETURN
  18. 617 IF h_i% = 3 THEN rgb_R% = h_p%: rgb_G% = h_q%: rgb_B% = hsv_V * 255: RETURN
  19. 618 IF h_i% = 4 THEN rgb_R% = h_t%: rgb_G% = h_p%: rgb_B% = hsv_V * 255: RETURN
  20. 619 rgb_R% = hsv_V * 255: rgb_G% = h_p%: rgb_B% = h_q%: RETURN
Плавное изменение цвета в палитре HSV (оттенок, насыщенность, яркость)
  1. 5 hsv_H% = 250: hsv_S = 1.0: hsv_V = 0.95
  2. 10 GOSUB 600
  3. 15 SETCOLOR rgb_R%, rgb_G%, rgb_B%
  4. 20 FILLRECT 0, 0, SCREENWIDTH(0), SCREENHEIGHT(0)
  5. 25 hsv_H% = hsv_H% + 1: IF (hsv_H% >= 360) THEN hsv_H% = 0
  6. 30 hsv_V = hsv_V - 0.0005: IF (hsv_V <= 0) THEN hsv_V = 1
  7. 35 SLEEP 10
  8. 40 GOTO 10

Реклама

Мы в соцсетях

tw tg yt gt