Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
bo-al
5 / 5 / 0
Регистрация: 02.02.2010
Сообщений: 13
1

Графические возможности Delphi.

06.03.2010, 13:42. Просмотров 1342. Ответов 9
Метки нет (Все метки)

Здравствуйте! Объясните пожалуйста как в этом коде программы, сделать, так, чтобы результат построения функции F(х) выводился в новое окно? И еще одно как поменять цвет графика? Спасибо за внимание и за помощь!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
unit unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, TeeProcs, TeEngine, Chart;
 
type
  TForm1 = class(TForm)
    E1: TEdit;
    E2: TEdit;
    OK: TBitBtn;
    procedure OKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.OKClick(Sender: TObject);
Function f(x:real):real;
begin
f:=Sin(x);
end;
procedure GrOfFunc;
var
 x1,x2:real;    // границы изменения аргумента функции
 y1,y2:real;    // границы изменения значения функции
 x:real;        // аргумент функции
 y:real;        // значение функции в точке x
 dx:real;       // приращение аргумента
 l,b:integer;   // левый нижний угол области вывода графика
 w,h:integer;   // ширина и высота области вывода графика
 mx,my:real;    // масштаб по осям X и Y
 x0,y0:integer; // точка - начало координат
begin
l:=10;                     // X - координата левого верхнего угла
 b:=Form1.ClientHeight-20;  // Y - координата левого верхнего угла
 h:=Form1.ClientHeight-40;  // высота
 w:=Form1.Width-40;         // ширина
x1:=strtoint(E1.text);     // нижняя граница диапазона аргумента
 x2:=strtoint(E2.text);    // верхняя граница диапазона аргумента
 dx:=0.002;  // шаг аргумента
// найдем максимальное и минимальное значения
 //  функции на отрезке [x1,x2]
 y1:=f(x1); // минимум
 y2:=f(x1); // максимум
 x:=x1;
 repeat
   y := f(x);
   if y < y1 then y1:=y;
   if y > y2 then y2:=y;
   x:=x+dx;
 until (x>=x2);
 
 // вычислим масштаб
 my:=h/abs(y2-y1);  // масштаб по оси Y
 mx:=w/abs(x2-x1);  // масштаб по оси X
// оси
 x0:=l;
 y0:=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(y1,ffGeneral,6,3));
   // построение графика
   x:=x1;
   repeat
     y:=f(x);
     Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clRed;
     x:=x+dx;
   until (x>=x2);
 end;
end;
begin
  GrOfFunc;
end;
 
end.
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2010, 13:42
Ответы с готовыми решениями:

Графические возможности Delphi
Здравствуйте. Кто-нибудь помогите составить программу в делфи (обязательно в делфи 7). По...

Графические возможности Delphi
Помогите создать программу в Дельфи...В диалоговое окно вывести текст разного стиля и размера

Графические возможности Delphi
1. Создать фон формы с плавным переходом от одного цвета к другому. 2. Используя пиксельную...

Графические возможности
ПРИВЕТ!!! :) Люди добрые, помогите пожалуйста нарисовать горный пейзаж...

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

9
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
06.03.2010, 14:27 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeeProcs, TeEngine, Chart, StdCtrls;
 
type
  TForm1 = class(TForm)
    E1: TEdit;
    E2: TEdit;
    OK: TEdit;
    procedure OKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 uses Unit2;// подключение модуля 2
{$R *.dfm}
 
procedure TForm1.OKClick(Sender: TObject);
Function f(x:real):real;
begin
f:=Sin(x);
end;
procedure GrOfFunc;
var
 x1,x2:real;    // границы изменения аргумента функции
 y1,y2:real;    // границы изменения значения функции
 x:real;        // аргумент функции
 y:real;        // значение функции в точке x
 dx:real;       // приращение аргумента
 l,b:integer;   // левый нижний угол области вывода графика
 w,h:integer;   // ширина и высота области вывода графика
 mx,my:real;    // масштаб по осям X и Y
 x0,y0:integer; // точка - начало координат
begin
l:=10;                     // X - координата левого верхнего угла
 b:=Form1.ClientHeight-20;  // Y - координата левого верхнего угла
 h:=Form1.ClientHeight-40;  // высота
 w:=Form1.Width-40;         // ширина
x1:=strtoint(E1.text);     // нижняя граница диапазона аргумента
 x2:=strtoint(E2.text);    // верхняя граница диапазона аргумента
 dx:=0.002;  // шаг аргумента
// найдем максимальное и минимальное значения
 //  функции на отрезке [x1,x2]
 y1:=f(x1); // минимум
 y2:=f(x1); // максимум
 x:=x1;
 repeat
   y := f(x);
   if y < y1 then y1:=y;
   if y > y2 then y2:=y;
   x:=x+dx;
 until (x>=x2);
 
 // вычислим масштаб
 my:=h/abs(y2-y1);  // масштаб по оси Y
 mx:=w/abs(x2-x1);  // масштаб по оси X
// оси
 x0:=l;
 y0:=b-Abs(Round(y1*my));
 Form2.Show; // вывод нового окна
 with form2.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(y1,ffGeneral,6,3));
   // построение графика
   x:=x1;
   repeat
     y:=f(x);
     Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clBlue;// цвет графика!!!
     x:=x+dx;
   until (x>=x2);
 end;
end;
begin
  GrOfFunc;
end;
end.
1
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
06.03.2010, 14:36 3
Вот листинг на всякий случай
2
Вложения
Тип файла: rar График.rar (6.2 Кб, 40 просмотров)
bo-al
5 / 5 / 0
Регистрация: 02.02.2010
Сообщений: 13
06.03.2010, 14:51  [ТС] 4
igoriy спасибо за помощь! Но при запуске программы из архива, выскакивает следующая ошибка:
Что с этой ошибкой делать?
1
Миниатюры
Графические возможности Delphi.  
06.03.2010, 14:51
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
06.03.2010, 14:58 5
А вторая форма создана?

Добавлено через 1 минуту
Какая Дельфя у тебя?
1
bo-al
5 / 5 / 0
Регистрация: 02.02.2010
Сообщений: 13
06.03.2010, 14:58  [ТС] 6
Да, создана!

Добавлено через 25 секунд
Delphi 7!
1
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
06.03.2010, 14:59 7
Попробуй удалить
Delphi
1
Application.MainFormOnTaskbar := True;
1
bo-al
5 / 5 / 0
Регистрация: 02.02.2010
Сообщений: 13
06.03.2010, 15:02  [ТС] 8
После удаления работает! Спасибо за помощь!
1
igoriy
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
06.03.2010, 15:03 9
Это потому что у меня Delphi 2009 а они с 7-кой отличаются
1
bo-al
5 / 5 / 0
Регистрация: 02.02.2010
Сообщений: 13
06.03.2010, 15:05  [ТС] 10
Ясно!
1
06.03.2010, 15:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2010, 15:05

Назначение и возможности среды программирования Delphi
Ответить на вопрос 3. Назначение и возможности среды программирования Delphi.

Возможности и преимущества среды delphi xe8
Кто нибудь может рассказать об delphi xe8, о его особенностях и возможностях , или ссылки на...

Графические возможности Delphi
Проиллюстрируйте законы Кеплера, согласно которым планеты движутся по эллипсам, в одном из фокусов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru