Процедури rectangle, drawrectangle, fillrect

Привіт, постійні читачі мого сайту про програмування і математики. На цій сторінці розглянемо процедури Rectangle, DrawRectangle, FillRect / FillRectangle графічного модуля GraphABC для малювання прямокутників. Чому так багато процедур? Чому б не обійтися однієї якої-небудь підпрограмою? Та тому, що різні процедури малюють прямокутники по-різному. Почнемо з визначення першої з них.

процедура Rectangle

✎ procedure Rectangle (x1, y1, x2, y2: integer);

- Малює заповнений прямокутник, заданий координатами протилежних вершин (x1, y1) і (x2, y2)

Прямокутник, побудований за допомогою Rectangle має кордони і його можна залити (зафарбувати), попередньо поставивши колір процедурою SetBrushColor (.). Для завдання товщини кордону викликаємо процедуру SetPenWidth (.). для кольору кордону викликаємо SetPenColor (.).

Ми вже згадували раніше, що тут в розділі про графік ми всюди маємо справу з пікселями. Найбільш широко робота з пікселями і згладжуванням зображень ведеться в сучасному телебаченні з високою роздільною здатністю, або технологій, які працюють з ним. Прикладом може служити приставка tv box cs918 android.

Слід пам'ятати: якщо не ставити кольору і товщину кордону, то задіюються умовчання - товщина кордону 1px, колір кордону - чорний, колір заливки - білий. Тому, щоб показати наш прямокутник "у всій красі", задамо деякі параметри самі. Візьміть код нижче і вставте в середу PascalABC або PascalABC.Net. Взагалі я рекомендую не копіювати, а переписувати руками (якщо, звичайно, код не надто великий), оскільки так краще запам'ятовується, сам перевірив. Дивимося, що у нас вийшло:

Код PascalABC, PascalABC.Net

Процедури rectangle, drawrectangle, fillrect

процедура DrawRectangle

✎ procedure DrawRectangle (x1, y1, x2, y2: integer);

- Малює кордон прямокутника, заданого координатами протилежних вершин (x1, y1) і (x2, y2)

Процедура DrawRectangle малює тільки кордон прямокутника і не заливає область кольором (застосовувати SetBrushColor безглуздо - вона не спрацює). До того ж, дана підпрограма відсутня у простому PascalABC. Тому відкриваємо PascalABC.Net і запускаємо на виконання наступний код.

Процедури rectangle, drawrectangle, fillrect

Якщо приберемо 8 і 9 рядка коду (товщина і колір пера), то межа нашого прямокутника буде чорної і товщиною 1px. До речі, використовувати змінні x1, x2, y1, y2 для координат не обов'язково - їх записано тільки для наочності. Можна просто вставити числа в процедуру, і тоді попередня програма буде виглядати так:

Процедури FillRect, FillRectangle

Процедури FillRect і FillRectangle роблять одне і те ж - заповнюють область прямокутника кольором. Сам прямокутник при цьому меж не має, тому ставити колір і товщину за допомогою пера Pen не має сенсу - ніякої межі не буде. Різниця між ними в даному випадку в тому, що FillRectangle відсутня в PascalABC, зате у версії PascalABC.Net присутні обидва варіанти.

Ось визначення кожної з них:

✎ procedure FillRect (x1, y1, x2, y2: integer);

- Заливає прямокутник, заданий координатами протилежних вершин (x1, y1) і (x2, y2), кольором поточної кисті.

✎ procedure FillRectangle (x1, y1, x2, y2: integer);

- Заповнює внутрішність прямокутника, заданого координатами протилежних вершин (x1, y1) і (x2, y2)

Проста програма, що демонструє сказане вище. Для заливки прямокутника ми використовували тут процедуру FillRect, тому дану програму можна запускати як мінімум в PascalABC і PascalABC.Net.

Код PascalABC, PascalABC.Net

Процедури rectangle, drawrectangle, fillrect

Ось схожі теми:

div> .uk-panel '> "data-uk-grid-margin>