Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Shy777
2 / 2 / 1
Регистрация: 08.06.2011
Сообщений: 45
#1

Canvas

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

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

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

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

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

canvas
как с помоцью canvas двигать изображение?

Canvas
Доброго времени. Небольшая проблемка. Не получается рисовать произвольную...

3
Puporev
Модератор
54221 / 41854 / 28923
Регистрация: 18.05.2008
Сообщений: 98,534
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 / 1
Регистрация: 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
Модератор
54221 / 41854 / 28923
Регистрация: 18.05.2008
Сообщений: 98,534
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
помогите подправить програмку,не могу сделать так что бы заяц ровно...

Canvas
Нарисована схема в Canvas. Схема прописана для Form1 в OnPaint. При нажатии на...

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


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

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

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