Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
#1

Графики в Делфи

28.04.2016, 17:25. Просмотров 842. Ответов 15
Метки нет (Все метки)

Подскажите, как в Делфи вносить значение точек(по х и по у) и по этим данным строить график? Именно интересует построение по точкам, а не по функции...Кто может помочь, откликнитесь
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2016, 17:25
Ответы с готовыми решениями:

Графики в Делфи
Построить график функции: x=a*(cos(t))2+b*cos(t), y=a*cos(t)*sin(t)+b*sin(t),...

Вывод графики на форму ДЕЛФИ.
Инструменты рисования – отрезок и ломанная. Создать панель инструментов,...

Как в Делфи выполнить код, написанный на Делфи, например в поле ввода?
Есть способ в Делфи выполнить код, написанный на Делфи, например в поле ввода?

Здр, пожалуйста попробуйте запутсить .exe написанное на делфи 10 у себя, те у кого делфи 7
и скиньте скрин пожалуйста срочно http://www.fayloobmennik.net/4874373 перед...

У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?!
Где можно скачать Делфи 7, дайте ссылку! У меня стоит Делфи 5, возможно еще...

15
ROS88
128 / 128 / 98
Регистрация: 10.03.2015
Сообщений: 525
28.04.2016, 18:26 #2
Насколько я понял тебя интересует интерполяция таблично-заданных функций.
1
Вложения
Тип файла: rar interpolateNyton-I.rar (218.1 Кб, 10 просмотров)
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
29.04.2016, 15:56  [ТС] #3
Меня не интересует интерполяция. Просто проведение линии между точками заданными
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
29.04.2016, 16:39 #4
Например так
0
Вложения
Тип файла: rar 33.rar (247.2 Кб, 6 просмотров)
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
29.04.2016, 16:46  [ТС] #5
как-то странно она работает..
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
29.04.2016, 16:48 #6
И что странного?

Добавлено через 31 секунду
Кстати Ваше условие еще страннее.
0
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
29.04.2016, 17:05  [ТС] #7
Чем оно странное? Задаются точки и по ним строится ломаная линия... А у Вас как-то задавать точки нельзя и не очень понятно вообще по какому принципу выбираются точки для построения, можно объяснить...
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
29.04.2016, 17:07 #8
irina_luh, По моему Вы дама, а посему меня увольте, нервы нужно беречь...
0
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
29.04.2016, 17:08  [ТС] #9
какая вообще разница? Попросила помощи, Ваш ответ не поняла, попросила объяснить... странно.ну да ладно. спасибо
0
Arcor
4881 / 1833 / 382
Регистрация: 20.11.2009
Сообщений: 5,887
Записей в блоге: 1
29.04.2016, 17:20 #10
так??
1
Миниатюры
Графики в Делфи  
ROS88
128 / 128 / 98
Регистрация: 10.03.2015
Сообщений: 525
29.04.2016, 17:21 #11
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
h := (xmax - xmin)/n;
 
mx := (510 - 10)/(abs(xmax) + abs(xmin));
my := (320 - 20)/(abs(ymax) + abs(ymin));
 
 
x0 := 10 + Trunc(mx * abs(xmin));
y0 := 20 + Trunc(my * abs(ymax));
 
Form1.Canvas.Brush.Color := clWhite;
Form1.Canvas.Rectangle(10, 20, 510, 320);
 
Form1.Canvas.MoveTo(10, y0);
Form1.Canvas.LineTo(10 + 500, y0);
 
Form1.Canvas.MoveTo(x0, 20);
Form1.Canvas.LineTo(x0, 20 + 300);
Form1.Canvas.Pen.Color := clRed;
for i := 1 to n-1 do
  begin
     Form1.Canvas.MoveTo(Trunc(x0 + X[i]*mx), Trunc(y0 - Y[i]*my));
     Form1.Canvas.LineTo(Trunc(x0 + X[i + 1]*mx), Trunc(y0 - Y[i + 1]*my));
  end;
1
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
29.04.2016, 17:34  [ТС] #12
Спасибо большое всем, кто отозвался.
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
29.04.2016, 17:53 #13
Или так.
1
Вложения
Тип файла: rar 33_a.rar (252.8 Кб, 6 просмотров)
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
03.05.2016, 14:06  [ТС] #14
Puporev, а как в Вашем примере преобразовать тип данных, чтоб можно было работать не только с целыми числами, но и с дробными?
0
Puporev
Модератор
54352 / 41944 / 28978
Регистрация: 18.05.2008
Сообщений: 98,798
03.05.2016, 15:05 #15
Лучший ответ Сообщение было отмечено irina_luh как решение

Решение

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
type point=record
           x,y:double
           end;
var
  Form1: TForm1;
  a:array of point;
  n,k:integer;
 
implementation
 
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
with StringGrid1 do
 begin
  fixedcols:=0;
  colcount:=2;
  fixedrows:=1;
  rowcount:=2;
  cells[0,0]:='x';
  cells[1,0]:='y';
 end;
Button1.Enabled:=true;
Button2.Enabled:=false;
Button3.Enabled:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
var c:integer;
begin
val(Edit1.Text,n,c);
if(c<>0)or(n<1) then
 begin
  ShowMessage('Неверно введено количество точек');
  Edit1.Clear;
  Edit1.SetFocus;
  exit
 end;
setlength(a,n);
Button1.Enabled:=false;
Button2.Enabled:=true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var c1,c2:integer;
begin
inc(k);
val(Edit2.Text,a[k-1].X,c1);
val(Edit3.Text,a[k-1].Y,c2);
if (c1<>0)or(c2<>0) then
 begin
  dec(k);
  ShowMessage('Неверно введены координаты');
  Edit2.Clear;
  Edit3.Clear;
  Edit2.SetFocus;
  exit
 end;
StringGrid1.Cells[0,k]:=format('%.2f',[a[k-1].X]);
StringGrid1.Cells[1,k]:=format('%.2f',[a[k-1].Y]);
Edit2.Clear;
Edit3.Clear;
Edit2.SetFocus;
StringGrid1.RowCount:=StringGrid1.RowCount+1;
if k=n then
 begin
  Button2.Enabled:=false;
  Button3.Enabled:=true;
  StringGrid1.RowCount:=StringGrid1.RowCount-1;
 end;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer;
    x:point;
begin
//отсортируем точки по Х
for i:=0 to n-2 do
for j:=i+1 to n-1 do
if a[i].X>a[j].X then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end; 
for i:=0 to n-1 do
Series1.AddXY(a[i].X,a[i].Y,'',clRed);
end;
1
irina_luh
0 / 0 / 0
Регистрация: 11.04.2016
Сообщений: 56
Завершенные тесты: 1
03.05.2016, 15:17  [ТС] #16
Puporev, Спасибо огромное!
0
03.05.2016, 15:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 15:17

Как открыть doc в делфи? Или как можно написать огромный текст в делфи?
Думаю поймете. Я решил сделать сборник книг. И в Delphi добавил список книг (в...

То что работает в Делфи 7 - не работает в Делфи 2010
Здравствуйте есть прога создана в Delphi 7. Хочу теперь ее скомпилировать в...

"Делфи" vs. "Делфи для начинающих" )
Добрый день. Интересует такой вопрос: для чего разделение на &quot;Делфи&quot; и &quot;Делфи...


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

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

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