Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Shy777
2 / 2 / 0
Регистрация: 08.06.2011
Сообщений: 45
#1

Canvas - Delphi

27.04.2012, 18:24. Просмотров 546. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста нарисовать в Canvas график какой нибудь любой функции.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 18:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Canvas (Delphi):

Можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas - Delphi
Здравствуйте, пожалуйста, подскажите можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas?

Как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas - Delphi
Здравствуйте! Подскажите, пожалуйста, как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas

Canvas. - Delphi
Я конечно извиняюсь за глупый вопрос но кто то может мне объяснить как включить етот Canvas и как с ним работать заранее благодарен.

Canvas - Delphi
Всем добрый день,я тут новенький и у меня возникла проблема,нам дали задание на лабораторную сделать имитацию движения автомобилей по...

Canvas - Delphi
Здравствуйте помоги разобраться с небольшой проблемой. Есть определенный текст, который должен в конвас выводиться определенное...

Canvas - Delphi
Не совсем понял как рисовать окружности на Canvas, в решенном задании преподаватель попросил подправить окружность, пометил что оно не...

3
Puporev
Модератор
53842 / 41475 / 14581
Регистрация: 18.05.2008
Сообщений: 97,201
27.04.2012, 18:36 #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
91
92
93
94
95
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
function F(x:real):real;
begin
F:=1+0.5*x*sqrt(x);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var xn,xk,xc,yc,w,h,i:integer;
    mx,my,x,y:real;
begin
xn:=0;
xk:=50;
xc:=30;
yc:=Image1.Height-30;
w:=Image1.Width-2*xc;
h:=Image1.Height-50;
mx:=w/xk;
my:=h/F(xk);
with Image1.Canvas do
 begin
  Brush.Color:=clWhite;
  Pen.Color:=clBlack;
  MoveTo(xc,yc);
  LineTo(xc+w,yc);
  MoveTo(xc,yc);
  LineTo(xc,yc-h);
  textout(xc+w,yc-20,'X');
  textout(xc+10,20,'Y');
  textout(xc+10,yc+10,'0');
  for i:=1 to trunc(F(xk))+1 do
   begin
    if i*mx<=mx*xk then
     begin
      pen.Width:=1;
      MoveTo(xc+round(i*mx),yc-3); LineTo(xc+round(i*mx),yc+3);
      if i mod 5=0 then
       begin
        pen.Width:=2;
        MoveTo(xc+round(i*mx),yc-5); LineTo(xc+round(i*mx),yc+5);
        textout(xc+round(i*mx),yc+10,Inttostr(i));
       end;
     end;
    if i mod 5=0 then
     begin
      pen.Width:=1;
      MoveTo(xc+3,yc-round(i*my)); LineTo(xc-3,yc-round(i*my));
     end;
    if i mod 10=0 then
     begin
      pen.Width:=2;
      MoveTo(xc+5,yc-round(i*my)); LineTo(xc-5,yc-round(i*my));
      textout(xc-30,yc-round(i*my),Inttostr(i));
     end; 
   end;
 x:=xn;
 while x<=xk+0.5 do
  begin
   pixels[xc+round(x*mx),yc-round(F(x)*my)]:=clred;
   x:=x+0.001;
  end;
 end;
Form1.Caption:='График функции Y=1+0.5*x*sqrt(x)';
end;
 
end.
Точно также на канве формы.
0
Shy777
2 / 2 / 0
Регистрация: 08.06.2011
Сообщений: 45
27.04.2012, 19:00  [ТС] #3
Цитата Сообщение от Puporev Посмотреть сообщение
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
92
93
94
95
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
function F(x:real):real;
begin
F:=1+0.5*x*sqrt(x);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var xn,xk,xc,yc,w,h,i:integer;
    mx,my,x,y:real;
begin
xn:=0;
xk:=50;
xc:=30;
yc:=Image1.Height-30;
w:=Image1.Width-2*xc;
h:=Image1.Height-50;
mx:=w/xk;
my:=h/F(xk);
with Image1.Canvas do
 begin
  Brush.Color:=clWhite;
  Pen.Color:=clBlack;
  MoveTo(xc,yc);
  LineTo(xc+w,yc);
  MoveTo(xc,yc);
  LineTo(xc,yc-h);
  textout(xc+w,yc-20,'X');
  textout(xc+10,20,'Y');
  textout(xc+10,yc+10,'0');
  for i:=1 to trunc(F(xk))+1 do
   begin
    if i*mx<=mx*xk then
     begin
      pen.Width:=1;
      MoveTo(xc+round(i*mx),yc-3); LineTo(xc+round(i*mx),yc+3);
      if i mod 5=0 then
       begin
        pen.Width:=2;
        MoveTo(xc+round(i*mx),yc-5); LineTo(xc+round(i*mx),yc+5);
        textout(xc+round(i*mx),yc+10,Inttostr(i));
       end;
     end;
    if i mod 5=0 then
     begin
      pen.Width:=1;
      MoveTo(xc+3,yc-round(i*my)); LineTo(xc-3,yc-round(i*my));
     end;
    if i mod 10=0 then
     begin
      pen.Width:=2;
      MoveTo(xc+5,yc-round(i*my)); LineTo(xc-5,yc-round(i*my));
      textout(xc-30,yc-round(i*my),Inttostr(i));
     end; 
   end;
 x:=xn;
 while x<=xk+0.5 do
  begin
   pixels[xc+round(x*mx),yc-round(F(x)*my)]:=clred;
   x:=x+0.001;
  end;
 end;
Form1.Caption:='График функции Y=1+0.5*x*sqrt(x)';
end;
 
end.
Точно также на канве формы.



А можешь полностью описать какие компоненты что как... если не трудно то проект готовый прислать... я просто впервые с Canvas сталкиваюсь
0
Puporev
Модератор
53842 / 41475 / 14581
Регистрация: 18.05.2008
Сообщений: 97,201
27.04.2012, 19:04 #4
Только и можете что сопли размазывать, лодыри....
0
Вложения
Тип файла: zip График на Image_1.zip (200.1 Кб, 14 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2012, 19:04
Привет! Вот еще темы с ответами:

Canvas - Delphi
Ребятки нужна помощь. Решите хотя бы 1ю задачу. 1) Напишите приложение, в окне которого изображен прямоугольник, стороны которого...

canvas - Delphi
можно ли избавиться от наложения фигур друг на друга кроме построения по точкам единственное что пришло в голову

Canvas - Delphi
помогите подправить програмку,не могу сделать так что бы заяц ровно выводился,ну т.е. что бы у него были глаза,рот и нос unit Unit1; ...

Canvas - Delphi
Нарисована схема в Canvas. Схема прописана для Form1 в OnPaint. При нажатии на один их пунктов меню часть схемы должна окраситься в желтый...


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

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

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