При работе с графикой
удобно использовать объекты типа TBitMap (битовый образ). Битовый образ представляет
собой находящуюся в памяти компьютера, и, следовательно, невидимую графическую
поверхность, на которой программа может сформировать изображение. Содержимое
битового образа (картинка) легко и, что особенно важно, быстро может быть выведено
на поверхность формы или области вывода иллюстрации (image). Поэтому в программах
битовые образы обычно используются для хранения небольших изображений, например,
картинок командных кнопок.
Загрузить в битовый
образ нужную картинку можно при помощи метода LoadFromFlie, указав в качестве
параметра имя BMP-файла, в котором находится нужная иллюстрация.
Например, если в программе
объявлена переменная pic типа TBitMap, то после выполнения инструкции
pic.LoadFromFiie('е:\images\aplane.bmp')
битовый образ pic будет
содержать изображение самолета.
Вывести содержимое
битового образа (картинку) на поверхность формы или области вывода иллюстрации
можно путем применения метода Draw к соответствующему свойству поверхности (canvas).
Например, инструкция
Image1.Canvas.Draw(x,у,
bm)
выводит картинку битового
образа bm на поверхность компонента image 1 (параметры х и у определяют положение
левого верхнего угла картинки на поверхности компонента).
Если перед применением
метода Draw свойству Transparent объекта TBitMap присвоить значение True, то
фрагменты рисунка, окрашенные цветом, совпадающим с цветом левого нижнего угла
картинки, не будут выве-
дены — через них будет
как бы проглядывать фон. Если в качестве "прозрачного" нужно использовать
цвет, отличный от цвета левой нижней точки рисунка, то свойству Transparentcoior
следует присвоить значение символьной константы, обозначающей необходимый цвет.
Следующая программа,
текст которой приведен в листинге 10.7, демонстрирует использование битовых
образов для формирования изображения из нескольких элементов.
Листинг 10.7.
Использование битовых образов
unit
aplanes_; interface
uses
Windows, Messages, SysUtils, Classes,
Graphics,
Controls, Forms, Dialogs;
type
TForml
= class(TForm)
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Forml:
TForm1;
sky,aplane:
TBitMap; // битовые образы: небо и самолет
implementation
($R
*.DFM}
procedure TForm1.FormPaint(Sender: TObject);
begin
// создать битовые образы
sky := TBitMap.Create;
aplane
:= TBitMap.Create;
//
загрузить картинки
sky.LoadFromFile('sky.bmp');
aplane.LoadFromFile('aplane.bmp')
;
Form1.Canvas.Draw(0,0,sky);
// отрисовка фона
Form1.Canvas.Draw(20,20,aplane);
// отрисовка левого самолета
aplane.Transparent:=True;
// теперь элементы рисунка, цвет которых совпадает с цветом
// левой нижней точки битового образа, не отрисовываются Form1.Canvas.Draw(120,20,aplane);
//
отрисовка правого самолета
// освободить память sky.free; aplane.free;
end;
end.
После запуска программы
в окне приложения (рис. 10.14) появляется изображение летящих на фоне неба самолетов.
Фон и изображение самолета -битовые образы, загружаемые из файлов. Белое поле
вокруг левого самолета показывает истинный размер картинки битового образа aplane.
Белое поле вокруг правого самолета отсутствует, т. к. перед его выводом свойству
Transparent битового образа было присвоено значение True.
Рис. 10.14. Влияние значение свойства Transparent на вывод изображения
1. Электромагнитная волна (в религиозной терминологии релятивизма - "свет") имеет строго постоянную скорость 300 тыс.км/с, абсурдно не отсчитываемую ни от чего. Реально ЭМ-волны имеют разную скорость в веществе (например, ~200 тыс км/с в стекле и ~3 млн. км/с в поверхностных слоях металлов, разную скорость в эфире (см. статью "Температура эфира и красные смещения"), разную скорость для разных частот (см. статью "О скорости ЭМ-волн")
2. В релятивизме "свет" есть мифическое явление само по себе, а не физическая волна, являющаяся волнением определенной физической среды. Релятивистский "свет" - это волнение ничего в ничем. У него нет среды-носителя колебаний.
3. В релятивизме возможны манипуляции со временем (замедление), поэтому там нарушаются основополагающие для любой науки принцип причинности и принцип строгой логичности. В релятивизме при скорости света время останавливается (поэтому в нем абсурдно говорить о частоте фотона). В релятивизме возможны такие насилия над разумом, как утверждение о взаимном превышении возраста близнецов, движущихся с субсветовой скоростью, и прочие издевательства над логикой, присущие любой религии.
4. В гравитационном релятивизме (ОТО) вопреки наблюдаемым фактам утверждается об угловом отклонении ЭМ-волн в пустом пространстве под действием гравитации. Однако астрономам известно, что свет от затменных двойных звезд не подвержен такому отклонению, а те "подтверждающие теорию Эйнштейна факты", которые якобы наблюдались А. Эддингтоном в 1919 году в отношении Солнца, являются фальсификацией. Подробнее читайте в FAQ по эфирной физике.