ЛИСТИНГ 12.2 Обработчик события OnPaint из FIQMAKER.PAS

procédure TForml.FormPaint(Sender: TObj ect) ;
begin
Width := 4 90;
Height := 310;
WITH Canvas DO begin
{ Сначала мы рисуем простой прямоугольник, который } { равен ограничивающему его прямоугольнику : } Rectangle(10,10,170,80) ;
( Далее рисуем ограничивающий прямоугольник такого же { размера, передвинутый вниз, но с эллипсом внутри него) Rectangle(10,100,170,170); (Ограничивающий прямоуольник } Ellipse(10,100,170,170);
{ Внутри него эллипс } { Сам по cède эллипс: } Ellipse(10,190,170,260);

{ Теперь нарисуем ограничивающий прямоугольник для }

{ прямоугольника с закругленными углами, и затем }

{ нарисуем сам прямоугольник с закругленными углами }

Rectangle(200,10,370,80);
RoundRect(200,10,370,80,20,20);
{ Прямоугольник с закругленными углами выглядит плохо с} { ограничивающим его прямоугольником, поэтому } { нарисуем его отдельно: } RoundRect(200,100,370,170,20,20);

( Рисуем окружность, рисуя эллипс внутри ограничивающего} { прямоугольника, который в действительности } (является квадратом: }

Rectangle(400,10,470,80); { Это квадрат } Ellipse(400,10,470,80); ( Это окружность }

( И теперь сама окружность } Ellipse(400,100,470,170);
{ Здесь другой прямоугольник с ассимметричными } { закругленными углами: } RoundRect(200,190,370,260,50 , 20) ;
END;
end;

Прямоугольники с закругленными углами

Метод RoundRect, в дополнение к координатам ограничивающего прямоугольника, требует еще два параметра. Эти два параметра определяют - как должны быть округлены углы. Это интересная система, которую вы должны несколько раз испробовать, чтобы действительно приобрести для этого сноровку. Хитрость состоит в том, что каждый закругленный угол является 1/4 сегмента эллипса, как показано на Рисунке 12.5. Первый из двух параметров угла задает ширину эллипса. Второй из двух углов параметров определят высоту эллипса. Если оба значения одинаковы, углы будут четвертью окружности, следовательно окружность является эллипсом с одинаковыми шириной и высотой. Средний прямоугольник с закругленными углами на Рисунке 12.4 имеет подобные симметричные углы.

Эллипсы

Если вы уже определили ограничивающий прямоугольник, то вы также должны определить и эллипс. Если вы представите деформированную окружность, помещенную в прямоугольник таким образом, что эта деформированная окружность касается внутренней части прямоугольника в четырех точках, то, следовательно, эта окружность будет эллипсом, как ее нарисовал бы Delphi. Если у вас будет ограничивающий квадрат вместо прямоугольника (с четырьмя равными сторонами), то эллипс в действительности станет окружностью На Рисунке 12.4 нарисованы и эллипс и круг внутри шответствуюших им ограничивающих прямоугольниках. Посмотрев на этот рисунок, вы все поймете лучше, чем я объяснял бы вам это половину дня.

Чтобы нарисовать эллипс или окружность, передайте координаты углов для ограничивающего их прямоугольника методом полотна Ellipse:

Canvas.Ellipse(10,100,170,170);

Ломаные линии и многоугольники


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31