|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
нужна помощь с графиком
Ребята, такая проблема: необходимо перевернуть график (т.е. чтобы ось Y была направлена вверх).
Код:
unit Lab12_1Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Math, Menus; type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; function f(x: real): real; procedure N1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a, b, h: real; implementation {$R *.dfm} function TForm1.f(x: real): real; begin f :=sqr((sin(x+1))); end; procedure TForm1.N1Click(Sender: TObject); var i, y: real; j: integer; begin a := 0; b := 3.14; h := 0.005; i := a; {===============================Строим график===========================} y := f(i); Canvas.Pen.Color := clBlue; Canvas.MoveTo(Round(i*100), Round(y*100)); while i <= b do begin y := f(i); i := i + h; Canvas.LineTo(Round(i*100), Round(y*100)); end; {=======================================================================} {===============================Рисуем и подписываем оси================} Canvas.Pen.Color := clRed; Canvas.TextOut(5, 5, '0'); Canvas.MoveTo(0, 0); i := 0; while i <= b do begin i := i + 0.5; Canvas.LineTo(Round(i*100), 0); Canvas.LineTo(Round(i*100), 10); Canvas.TextOut(Round(i*100), 10, FloatToStr(i)); Canvas.MoveTo(Round(i*100), 0); end; i := i + 0.5; Canvas.LineTo(Round(i*100), 0); Canvas.TextOut(Round(i*100), 10, 'x'); Canvas.MoveTo(0, 0); j := 0; while j < 1 do begin j := j + 1; Canvas.LineTo(0, j*100); Canvas.LineTo(10, j*100); Canvas.TextOut(15, j*100, FloatToStr(j)); Canvas.MoveTo(0, j*100); end; j := j + 1; Canvas.LineTo(0, j*100); Canvas.TextOut(15, j*100, 'y'); {=======================================================================} end; end. lmikle: Используем правильные теги! Последний раз редактировалось lmikle, 13.06.2013 в 07:22. |
#2
|
|||
|
|||
Цитата:
Round(y*100) заменить на что-то типа Round(Height - y*100) |
#3
|
|||
|
|||
спасибо! перевернулся сам график, но не ось..но я думаю этого пока достаточно.
|