Графические примитивы
Добавлено: 20 апр 2010, 18:23
Задание таково=) У меня есть код, есть задание .Кто может мне написать и сделать всё, чтобы работало через делфи? )))
Лабораторная работа №15
Тема: Графические возможности Delphi.
Цель работы:
• изучить основные методы вычерчивания графических примитивов;
• научиться вычерчивать график заданной функции.
Составить код программы вычерчивания графика функции F(x) на заданном отрезке [A,B] с шагом H.
Выражение для вычисления функции F, значения A, B, H взять из таблицы 13.1 в соответствии с номером варианта.
Вычисление и вывод значений функции F оформить в событии Click компонента BitBtn1.
Значения A и B ввести с поля компонентов Edit1 и Edit2.
Значение M задать локально в блоке Const.
мои данные F(x)= sin(x)
a=0
B= 140
H=0.02
Вот есть код.Помогите мне всё в делфике оформить плиз =) Можно и свой код)))
Для составления программы лабораторной работы можно воспользоваться примером построения графика функции, рассмотренным ниже.
Лабораторная работа №15
Тема: Графические возможности Delphi.
Цель работы:
• изучить основные методы вычерчивания графических примитивов;
• научиться вычерчивать график заданной функции.
Составить код программы вычерчивания графика функции F(x) на заданном отрезке [A,B] с шагом H.
Выражение для вычисления функции F, значения A, B, H взять из таблицы 13.1 в соответствии с номером варианта.
Вычисление и вывод значений функции F оформить в событии Click компонента BitBtn1.
Значения A и B ввести с поля компонентов Edit1 и Edit2.
Значение M задать локально в блоке Const.
мои данные F(x)= sin(x)
a=0
B= 140
H=0.02
Вот есть код.Помогите мне всё в делфике оформить плиз =) Можно и свой код)))
Для составления программы лабораторной работы можно воспользоваться примером построения графика функции, рассмотренным ниже.
unit grfunc_;
interface
uses
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.