10864

Рисование графиков в Delphi

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 2 Рисование графиков в Delphi Точка Поверхности на которую программа может осуществлять вывод графики соответствует объект Canvas. Свойство pixels представляющее собой двумерный массив типа TColor содержит информацию о цвете каждой точки графической...

Русский

2013-04-02

107.5 KB

65 чел.

Лабораторная работа № 2

«Рисование графиков в Delphi»

Точка

Поверхности, на которую программа может осуществлять вывод графики, соответствует объект Canvas. Свойство pixels, представляющее собой двумерный массив типа TColor, содержит информацию о цвете каждой точки графической поверхности. Используя свойство Pixels, можно задать тре-

буемый цвет для любой точки графической поверхности, т. е. "нарисовать" точку. Например, инструкция

Form1.Canvas.Pixels[10,10]:=clRed

окрашивает точку поверхности формы в красный цвет.

Размерность массива pixels определяется размером графической поверхности. Размер графической поверхности формы (рабочей области, которую также называют клиентской) задается значениями свойств ciientwidth и ClientHeight, а размер графической поверхности компонента image — значениями свойств width и Height. Левой верхней точке рабочей области формы соответствует элемент pixels [0,0], а правой нижней -Pixels[Ciientwidth - 1,ClientHeight - 1].

Свойство Pixels можно использовать для построения графиков. График строится, как правило, на основе вычислений по формуле. Границы диапазона изменения аргумента функции являются исходными данными. Диапазон изменения значения функции может быть вычислен. На основании этих данных можно вычислить масштаб, позволяющий построить график таким образом, чтобы он занимал всю область формы, предназначенную для вывода графика.

Например, если некоторая функция f(x) может принимать значения от нуля до 1000, и для вывода ее графика используется область формы высотой в 250 пикселов, то масштаб оси Y вычисляется по формуле: т = 250/1000. Таким образом, значению f(x) = 70 будет соответствовать точка с координатой Y =233. Значение координаты Y вычислено по формуле

Y= h -f(x) х т = 250 - 70х(250/1000),

где h - высота области построения графика.

Обратите внимание на то, что точное значение выражения 250 - 70х(250/1000) равно 232,5. Но т. к. индексом свойства pixels, которое используется для вывода точки на поверхность Canvas, может быть только целое значение, то число 232,5 округляется к ближайшему целому, которым является число 233.

Следующая программа, текст которой приведен в листинге 10.5, используя свойство pixels, выводит график функции у = 2 sin(jc) e*/5. Для построения графика используется вся доступная область формы, причем если во время работы программы пользователь изменит размер окна, то график будет выведен заново с учетом реальных размеров окна.

Листинг 10.5. График функции

unit grfunc_;

interface

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

procedure FormPaint(Sender: TObject);

procedure FormResize(Sender: TObject);

private

{ Private declarations }

public

{Public declarations }

end;

var

Forml: TForml;

implementation

{$R *.DFM}

// Функция, график которой надо построить

Function f(x:real):real;

begin

f:=2*Sin(x)*exp(x/5) ;

end;

// строит график функции

procedure GrOfFunc;

var

x1,x2:real; // границы изменения аргумента функции

y1,y2:real; // границы изменения значения функции

х:real; // аргумент функции

у:real; // значение функции в точке х

dx:real; // приращение аргумента

l,b:integer; // левый нижний угол области вывода графика

w,h:integer; // ширина и высота области вывода графика

mx,my:real; // масштаб по осям X и Y

х0,у0:integer; // точка — начало координат

begin

// область вывода графика

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;

repeat

У := 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

begin

// оси

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);

begin

GrOfFunc; end;

// изменился размер окна программы

procedure TForm1.FormResize(Sender: TObject);

begin

// очистить форму

forml.Canvas.FillRect(Rect(0,0,ClientWidth,

ClientHeight));

// построить график

GrOfFunc;

end;

end.

Основную работу выполняет процедура GrOfFunc, которая сначала вычисляет максимальное (у2) и минимальное (yl) значения функции на отрезке [x1l,x2]. Затем, используя информацию о ширине (Forml.Clientwidth -40) и высоте (Form1.ClientHeight - 40) области вывода графика, вычисляет масштаб по осям X (mх) иY(mу).

Высота и ширина области вывода графика определяется размерами рабочей (клиентской) области формы, т. е. без учета области заголовка и границ. После вычисления масштаба процедура вычисляет координату у горизонтальной оси (уо) и вычерчивает координатные оси графика. Затем выполняется непосредственное построение графика (рис. 10.10).

Вызов процедуры GrOfFunc выполняют процедуры обработки событий onPaint и onFormResize. Процедура TForm1. FormPaint обеспечивает вычерчивание графика после появления формы на экране в результате запуска программы, а также после появления формы во время работы программы, например, в результате удаления или перемещения других окон, полностью или частично перекрывающих окно программы. Процедура TForm1.FormResize обеспечивает вычерчивание графика после изменения размера формы.

Рис. 10.10. График, построенный процедурой GrOfFunc

Приведенная программа довольно универсальна. Заменив инструкции в теле функции f (х), можно получить график другой функции. Причем независимо от вида функции ее график будет занимать всю область, предназначенную для вывода.

Примечание

Рассмотренная программа работает корректно, если функция, график которой надо построить, принимает как положительные, так и отрицательные значения. Если функция во всем диапазоне только положительная или только отрицательная, то в программу следует внести изменения. Какие — пусть это будет упражнением для читателя.

Задания по вариантам:

Примечание. Созданные программы необходимо сохранить. Они Вам понадобятся в дальнейшем.

Задание 1. Составьте программу построения кусочно-заданной функции:

   

  

  

  

  

   

  

  

  

  

Задание 2.Составьте программу построение функции с учетом области определения y=F(x):

1. y=ln((1+x)/(1-sinx)).     6. y=lg((1-x)/(1+sinx)).

2. y=(x+2lnx)/(x*x-4).     7. y=(x-2ln(x-5))/(x*x-4).

3. y=(1+sinx)/cosx.      8. y=(1-cosx)/sinx.

4. y=arcsin(1/(2-x)).      9. y=arccos(1/(2+x)).

5. y=(x-lg(1-x))/(sinx-cosx).     10. y=(x-lg(1+x))/(sinx+cosx).

11. y=ln((1+x)/(1+sin2x)).     16. y=lg((1+x)/(1-sinx)).

12. y=(x+2lnx)/(x*x-4lnx).     17. y=(x+2ln(x+5))/(-x*x+4).

13. y=lnx-(1+sinx)/cosx.     18. y=(1-lncosx)/sinx.

14. y=arccos(2-1/x).      19. y=arcsin(cos(1/(2+x))).

15. y=(x+lg(-x))/(sinx+cosx).    20. y=lg(1+x)/(sin2x+cosx).


 

А также другие работы, которые могут Вас заинтересовать

21862. Управление геомеханическими процессами при системах с естественным поддержанием выработанного пространства 848 KB
  В этой группе систем разработки поддержание очистного пространства осуществляется за счет естественной устойчивости обнажений массивов полезного ископаемого и вмещающих пород. Следует заметить что данная группа систем разработки применяется как правило в условиях устойчивых массивов пород. Очевидно в такой постановке вопроса устойчивое состояние любых элементов системы разработки определяется соотношением действующих в массиве пород напряжений и деформационнопрочностных свойств пород слагающих рассматриваемый элемент. Если конкретно...
21863. Управление геомеханическими процессами при системах с искусственным поддержанием выработанного пространства: с закладкой выработанного пространства 344 KB
  Для поддержания подрабатываемого массива горных пород выработанное пространство вслед за выемкой руды или через некоторое время заполняется закладочным материалом. Для повышения плотности создаваемого искусственного массива специально подбираются крупность кусков и фракционный состав смесей. Для достижения высокой плотности закладочного массива рекомендуется принимать максимальный размер куска не более 250 300 мм при этом содержание мелких частиц должна быть до 10 15 а фракция от О до 20 мм до 30. Усадка закладочного массива в первом...
21864. Организация процесса разработки управленческого решения 95.5 KB
  Демократизация разработки решений; 5.1 Логические схемы деятельности в процессе разработки решения Методы принятия решений направленных на достижение намеченных целей могут быть различными: 1 метод основанный на интуиции управляющего которая обусловлена наличием у него ранее накопленного опыта и суммы знаний в конкретной области деятельности что помогает выбрать и принять правильное решение; 2 метод основанный на понятии здравого смысла когда управляющий принимая решения обосновывает их последовательными...
21865. Целевая ориентация управленческих решений 126 KB
  Взаимосвязи в системе целей Фундаментальные цели определяют общую направленность деятельности организации являются исходным пунктом построения дерева целей организации. Эти цели не всегда ясны даже высшим менеджерам а тем более – персоналу. Тактические цели: обеспечивают перевод стратегических целей в термины и показатели которые могут быть использованы при принятии решений; имеют своей основой стратегические цели направленные на их поддержку; более конкретны чем стратегические цели. Операционные цели являются еще более...
21866. Анализ внешней среды и ее влияние на реализацию альтернатив 71 KB
  С этого периода связь фирмы с внешней средой стала рассматриваться как одна из главнейших ее характеристик. Внешняя среда фирмы предприятия или организации – это совокупность активных субъектов и сил действующих за их пределами не поддающихся контролю со стороны фирмы предприятия или организации и влияющих на возможности фирмы предприятия или организации устанавливать и поддерживать отношения с субъектами внешнего окружения для достижения своих стратегических целей. Внешняя среда фирмы достаточно разнородна.2 Среда прямого воздействия К...
21867. Условия неопределенности и риска 55.5 KB
  Условия неопределенности и риска.3 – Виды и условия предпринимательского риска; 8. По критерию определенности информации различают решения принятые в условиях: а определенности б вероятностной определенности риска в неопределенности ненадежности. В отечественной экономике на данном этапе ее развития риск особенно вероятен вследствие неуменьшающейся неопределенности политической ситуации неустойчивости экономической среды отсутствия гарантии получения ожидаемого результата Природа риска в рыночной экономике...
21868. Приемы разработки и выборов управленческих решений в условиях неопределенности и риска 56.5 KB
  Приемы разработки и выборов управленческих решений в условиях неопределенности и риска.1 – Управление риском; 9.2 Классификация рисков; 9.3 – Руководители по отношению к риску; Разработка управленческого решения предполагает использование определенного объема информации.
21869. Качество и эффективность управленческих решений 54 KB
  Качество и эффективность управленческих решений.1 – Понятие управленческого решения и управленческого действия В теории принятия решений выделяют понятия управленческие решения и управленческие действия.2 Качественная оценка эффективности управленческого решения В состав качественных показателей эффективности разработки управленческих решений могут быть включены: своевременность представления проекта решения степень научной обоснованности решений использование научных методов разработки современных подходов ...
21870. Контроль реализации управленческих решений 72 KB
  Понятие содержание цель и функции контроля; 11. Виды контроля и их классификация; 11. Основные принципы и критерии организации контроля; 11. Основные принципы и критерии организации контроля.