КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Вывод иллюстраций
End. Begin Begin Begin Repeat Begin Var Begin Implementation Var Public Type Interface Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure FormResize(Sender: TObject); private { Private declarations } {Public declarations } end; Forml: TForml; {$R *.DFM} // Функция, график которой надо построить Function f(x:real):real; f:=2*Sin(x)*exp(x/5); end; // строит график функции procedure GrOfFunc; x1,x2:real; // границы изменения аргумента функции y1,y2:real; // границы изменения значения функции х:real; // аргумент функции у:real; // значение функции в точке х dx:real; // приращение аргумента l,b:integer; // левый нижний угол области вывода графика w,h:integer; // ширина и высота области вывода графика mx,my:real; // масштаб по осям X и Y х0,у0:integer; // точка — начало координат // область вывода графика l:=10; // X — координата левого верхнего угла b:=Forml.ClientHeight-20; //У — координата левого верхнего угла h:=Forml.ClientHeight-40; // высота w:=Forml.Width-40; // ширина x1:=0; // нижняя граница диапазона аргумента х2:=25; // верхняя граница диапазона аргумента dx:=0.01; // шаг аргумента // найдем максимальное и минимальное значения // функции на отрезке [x1,x2] y1:=f(xl); // минимум y2:=f(xl); //максимум x:=x1; У:= f (х); if у < yl then yl:=y; if у > у2 then y2:=y; х:=x+dx; until (x >= х2); // вычислим масштаб my:=h/abs(y2-yl); // масштаб по оси Y mx:=w/abs(x2-xl); // масштаб по оси X х0:=1; у0:=b-Abs(Round(y1*my)); with form1.Canvas do // оси MoveTo(l,b);LineTo(l,b-h); MoveTo(x0,y0);LineTo(x0+w,y0); TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3)); TextOut(l+5,b,FloatToStrF(yl,ffGeneral,6,3)); // построение графика x:=xl; repeat y:=f(x); Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clRed; x:=x+dx; until (x >= x2); end; end; procedure TForm1.FormPaint(Sender: TObject); GrOfFunc; end; // изменился размер окна программы procedure TForm1.FormResize(Sender: TObject); // очистить форму forml.Canvas.FillRect(Rect(0,0,ClientWidth, ClientHeight)); // построить график GrOfFunc; end; Основную работу выполняет процедура GrOfFunc, которая сначала вычисляет максимальное (у2) и минимальное (yl) значения функции на отрезке [x1l,x2]. Затем, используя информацию о ширине (Forml.Clientwidth -40) и высоте (Form1.ClientHeight - 40) области вывода графика, вычисляет масштаб по осям X (mх) иY(mу). Высота и ширина области вывода графика определяется размерами рабочей (клиентской) области формы, т. е. без учета области заголовка и границ. После вычисления масштаба процедура вычисляет координату у горизонтальной оси (уо) и вычерчивает координатные оси графика. Затем выполняется непосредственное построение графика. Вызов процедуры GrOfFunc выполняют процедуры обработки событий onPaint и onFormResize. Процедура TForm1. FormPaint обеспечивает вычерчивание графика после появления формы на экране в результате запуска программы, а также после появления формы во время работы программы, например, в результате удаления или перемещения других окон, полностью или частично перекрывающих окно программы. Процедура TForm1.FormResize обеспечивает вычерчивание графика после изменения размера формы. Приведенная программа довольно универсальна. Заменив инструкции в теле функции f (х), можно получить график другой функции. Причем независимо от вида функции ее график будет занимать всю область, предназначенную для вывода. Наиболее просто вывести иллюстрацию, которая находится в файле с расширением bmp, jpg или ico, можно при помощи компонента image, значок которого находится на вкладке Additional палитры. В табл. перечислены основные свойства компонента image. Таблица. Свойства компонента image
Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы. Во время разработки формы иллюстрация задается установкой значения свойства picture путем выбора файла иллюстрации в стандартном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor. Чтобы запустить Image Editor, нужно в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками. Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации. Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации. Например, инструкция Form1.Image1.Picture.LoadFromFile('e:\temp\bart.bmp') загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (imagel). Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg). Следующая программа, ее текст приведен в листинге 10.6, использует компонент image для просмотра иллюстраций, которые находятся в указанном пользователем каталоге. Диалоговое окно программы приведено на рис.
Дата добавления: 2014-11-16; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |