
24.05.2012, 23:37
|
Прохожий
|
|
Регистрация: 24.05.2012
Сообщения: 1
Репутация: 10
|
|
Нужна помошь в построеии осей
Здравствуйте.
Очень нужна помошь.
Учусь на специалньости очень далекой от програмирования, задали курсовую- написать программу для вывода граффика функции
(y=|a*cosx|+b*sin|x|) . Собственно программу то я написал, граффик выводится, но я не знаю как построить оси координат(с подписями и разметкой). максимум что у меня выходит это вот это - http://s019.radikal.ru/i632/1205/32/3a72006d94ac.jpg . Помогите построить эти чертовы оси. Завтра уже защита.
Кусок програмного кода с графиком
Код:
procedure TForm1.Button_plotClick(Sender: TObject);
var
i,v,c,x1,x2,y1,y2,x3,x4,y3,y4:integer;
minx,maxx,miny,maxy :extended;
begin
minx:=x[1];maxx:=x[1];miny:=y[1];maxy:=y[1];
for i:=1 to n do
begin
if x[i]<minx then minx:=x[i];
if x[i]>maxx then maxx:=x[i];
if y[i]<miny then miny:=y[i];
if y[i]>maxy then maxy:=y[i];
end;
v:=2; c:=5;
with image1, canvas do
begin
fillrect(clientrect);
pen.Color:=clblack;
for i:=1 to n do
begin
xr[i]:=c+round((x[i]-minx)/(maxx-minx)*(width-2*c));
yr[i]:=height-c-round((y[i]-miny)/(maxy-miny)*(height-2*c));
end;
moveto(xr[1],yr[1]);
for i:=1 to n do
lineto(xr[i],yr[i]);
for i:=1 to n do
rectangle(xr[i]-v,yr[i]-v,xr[i]+v,yr[i]+v);
begin
x1:=c+Round((MinX-MinX)/(MaxX-MinX)*(Width-2*c));
x2:=Width-c;
y1:=Height-c-round((0-MinY)/(MaxY-MinY)*(Height-2*c));
y2:=Height-c-round((0-MinY)/(MaxY-MinY)*(Height-2*c));
y3:=height-c;
y4:=c;
x3:=c+Round((minX-minX)/(MaxX-MinX)*(Width-2*c));
x4:= c+Round((minX-minX)/(MaxX-MinX)*(Width-2*c));
Pen.Color:=clred;
MoveTo(x3,y3);
LineTo(x4,y4);
MoveTo(x1,Y1);
LineTo(x2,y2);
end;
Font.Size:=15;
TextOut(x1+5,Y1+3,'0');
TextOut(x1+5,0,'Y');
TextOut(x1+290,Y1,'X');
end;
end;
Bargest: Оформляем код тегами!
Последний раз редактировалось Bargest, 24.05.2012 в 23:47.
|