Определить сегмент изображения в псевдокоде - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать генератор паттернов с 2 модами, 1 полосой и 2 панелями. С полосами было довольно легко, но я топчу по панелям.

Генератор становится осью, координатой y дисплея и должен решить, какой цвет он должен быть на основе информации x / Y.

Я хочу избежать:

Pseudo code
IF(x between 0-40 AND y between 0-40) THEN panel = 1
IF(x between 0-40 AND y between 40-80) THEN panel = 2

et c.

, потому что у меня 100 панелей, и код должен легко настраиваться.

Генератор полос I кодируется следующим образом:

stripes : PROCESS(modus, segment, column)
  BEGIN

    IF(modus = '0' AND enable = '1') THEN        --Mod 0 -> Stripes enabled
            IF(column < (40+ (160*segment)) THEN
                red <= (OTHERS => '1');
                green  <= (OTHERS => '0');
                blue <= (OTHERS => '0');
            ELSIF(column < (80+ (160*segment))) THEN
                red <= (OTHERS => '0');
                green  <= (OTHERS => '1');
                blue <= (OTHERS => '0');
                ELSIF(column < (120+ (160*segment))) THEN
                    red <= (OTHERS => '0');
                    green  <= (OTHERS => '0');
                    blue <= (OTHERS => '1');
                    ELSIF(column < (160+ (160*segment))) THEN
                        red <= (OTHERS => '0');
                        green  <= (OTHERS => '0');
                        blue <= (OTHERS => '0');
            END IF;
    END IF;
  END PROCESS;

    segment: PROCESS(column,row,modus)
    BEGIN
        IF(modus = '0' AND enable = '1') THEN
            IF(column < (pixels_x/4) then
                segment := 0;
            ELSIF(column < (pixels_x/2) then
                segment := 1;
            ELSIF(column < (3*pixels_x/4) then
                segment := 2;
            ELSE 
                segment := 3;
            END IF;
        ELSIF (modus = '1' AND enable = '1') THEN --Mod 1 -> Panels enabled

        END IF;
    END PROCESS;

Я кодирую на VHDL, но я просто ищу псевдокод, который поможет мне понять, как решить эту проблему без жесткого кодирования операторов IF / ELSE

...