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