Малювання геометричних фігур

У цьому розділі ми опишемо методи класу Graphics, призначені для малювання елементарних геометричних фігур, таких як лінії, прямокутники, кола тощо.

Для того щоб намалювати пряму суцільну тонку лінію, ви можете скористатися методом drawLine, прототип якого наведено нижче:

Кінці лінії мають координати (x1, y1) та (x2, y2), як це показано на рис. 1.

геометричних

Мал. 1. Малювання прямої лінії

На жаль, у контексті відображення не передбачено жодних атрибутів, що дозволяють намалювати пунктирну лінію або лінію збільшеної товщини.

Прямокутники та квадрати

Серед методів класу Graphics є кілька призначених для малювання прямокутників. Перший з них, з ім'ям drawRect, дозволяє намалювати прямокутник, заданий координатами свого лівого верхнього кута, шириною та висотою:

Параметри x і y задають, відповідно, координати верхнього лівого кута, а параметри width і height – висоту та ширину прямокутника (рис. 2).

геометричних

Мал. 2. Малювання прямокутника

На відміну від методу drawRect, що малює лише прямокутну рамку, метод fillRect малює заповнений прямокутник. Для малювання та заповнення прямокутника використовується колір, вибраний у контексті відображення (рис. 3).

геометричних

Мал. 3. Малювання заповненого прямокутника

Прототип методу fillRect наведено нижче:

Метод drawRoundRect дозволяє намалювати прямокутник із закругленими кутами:

Параметри x і y визначають координати верхнього лівого кута прямокутника, параметри width і height задають відповідно його ширину і висоту.

Розміри еліпса, що утворює закруглення по кутах, можна задати за допомогою параметрів arcWidth і arcHeight. Перший з нихзадає ширину еліпса, а другий – висоту (рис. 4).

геометричних

Мал. 4. Малювання прямокутника із закругленими кутами

Метод fillRoundRect дозволяє намалювати заповнений прямокутник із закругленими кутами (рис. 5).

малювання

Мал. 5. Малювання заповненого прямокутника із закругленими кутами

Призначення параметрів цього методу аналогічне до призначення параметрів щойно розглянутого методу drawRoundRect:

Метод fill3Drect призначений для малювання прямокутника, що виступає або западає:

Якщо значення параметра raised дорівнює true, малюється прямокутник, що виступає, якщо false - западающий. Призначення інших параметрів аналогічне до призначення параметрів методу drawRect.

Багатокутники

Для малювання багатокутників у класі Graphics передбачено чотири методи, два з яких малюють незаповнені багатокутники, а два – заповнені.

Перший метод малює незаповнений багатокутник, заданий масивами координат по осях X та Y:

Через параметри xPoints та yPoints передаються, відповідно, посилання на масиви координат по осі X та Y. Параметр nPoints задає кількість точок у масивах.

На рис. 6 показано багатокутник, намальований методом drawPolygon.

геометричних

Мал. 6. Багатокутник, намальований методом drawPolygon

У цьому багатокутнику шість вершин з координатами від (x0, y0) до (x5, y5), причому для того, щоб він став замкнутим, координати першої та останньої вершини збігаються.

Клас Polygon досить простий. Наведемо опис його полів, конструкторів та методів:

Поля класу

Масив координат по осі X

Масив координат по осі Y

Конструктори

Отримання координат прямокутника, що охоплює

Перевірка,чи знаходиться точка всередині багатокутника

Нижче ми показали фрагмент коду, в якому створюється багатокутник, а потім до нього додається кілька точок. Багатокутник малюється методом drawPolygon:

Якщо вам потрібно намалювати заповнений багатокутник (рис. 7), для цього ви можете скористатися методами, наведеними нижче:

Перший із цих методів малює багатокутник, координати вершин якого задані в масивах, другий - отримуючи об'єкт класу Polygon як параметр.

фігур

Мал. 7. Багатокутник, намальований методом fill Polygon

Овали та кола

Для малювання кіл і овалів ви можете скористатися методом drawOval:

Параметри цього методу задають координати і розміри прямокутника, в який вписується овал, що малюється (рис. 8).

фігур

Мал. 8. Малювання овалу

Метод fillOval призначений для малювання заповненого овалу (рис. 9). Призначення його параметрів аналогічне до призначення параметрів методу drawOval:

малювання

Мал. 9. Малювання заповненого овалу

Метод drawArc призначений для малювання незаповненого сегмента (рис. 10). Прототип цього методу наведено нижче:

фігур

Мал. 10. Малювання незаповненого сегмента

Параметри x, y, width і height задають координати прямокутника, який вписаний сегмент.

Параметри startAngle та arcAngle задаються у градусах. Вони визначають, відповідно, початковий кут та кут розвороту сегмента.

Для того, щоб намалювати заповнений сегмент, ви можете скористатися методом fillArc:

Завдання області обмеження

Якщо для вікна аплету задати область обмеження, то малювання буде можливим лише в межах цієї області. Область обмеження визначається методом clipRect, прототипякого ми привели нижче:

Параметри x, y, width і height визначають координати прямокутної області обмеження.

Копіювання вмісту прямокутної області

Параметри x, y, width і height задають координати прямокутної області, що копіюється. Область копіюється в іншу прямокутну область такого ж розміру, причому параметри dx та dy визначають координати останньої.