![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Очень нужна помошь. Учусь на специалньости очень далекой от програмирования, задали курсовую- написать программу для вывода граффика функции (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, 24.05.2012 в 23:47. |