Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220

Построение графика на компоненте Image

19.11.2017, 15:14. Показов 6304. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто сможет мне помочь в вопросе отрисовки канвы по значениям из 2 столбцов на компоненте Image. Еще и масштабирование графика надо сделать

Добавлено через 31 минуту
Первая попытка комом
Delphi
1
2
3
4
5
6
7
8
9
10
11
begin
 Image1.Canvas.Pen.Color:=clRed;
 Image1.Canvas.Pen.Width:=3;
 for n:=1 to Form3.Table.RowCount-1  do
  begin
   X := StrToInt(Form3.Table.Cells[0,n]);
   Y:=StrToFloat(Form3.Table.Cells[1,n]);
   Image1.Canvas.LineTo(Round(X), Round(Y));
  end;
  Form3.BitBtn4.Enabled:=False;
end;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2017, 15:14
Ответы с готовыми решениями:

Построение графика в компоненте Image
Построение графика в компоненте Image, графиком является парабола построенная по формуле Y=AX^2+BX+C, где A(edit1), B(edit2) и C(edit 3)...

Построение графика tg(x) в компоненте chart
непойму как построить tg(x) именно нужно в компоненте chart помогите плз =)

Построение графика функции в компоненте TChart
Здраствуйте. Мне нужна помощь в построении графика y=sin(x), а точнее сама функция для TChart

22
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
19.11.2017, 15:22
А тут смотрели?
Построение графиков функций на канве (Canvas)
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 16:36  [ТС]
Посмотрел пытался сделать но не выходит, опыта мало, тут функция математическая у меня значения в 2 столбцах, и должен выставить первый столбец по оси х, ну а второй по y соответственно.
Вторая попытка лучше но есть ошибки,помогите допилить, график сжатый получился
Добавлено через 50 минут
Delphi
1
2
3
4
5
6
7
n:integer;
begin
 Image1.Canvas.MoveTo(0,Image1.Height-StrToInt(Form3.Table.Cells[0,1]));
  for n:=1 to Form3.Table.RowCount-1 do
    Image1.Canvas.LineTo(Round(StrToInt(Form3.Table.Cells[0,n])), Round(Image1.Height-StrToFloat(Form3.Table.Cells[1,n])));
 
  end;
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 16:40  [ТС]
Вот такая беда выходит
Миниатюры
Построение графика на компоненте Image  
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 17:00
Вместо того чтобы пудрить мозги своими кусочками кода и картинками, напишите точное и полное задание. Проще написать программу, чем пытаться что-то Вам рассказывать, поскольку Вам самому лень читать и учить, а математику, и как рисуют графики Вы похоже вообще не знаете.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 19:23  [ТС]
По нажатию на кнопку вызывается форма з графиком значений функции, построенным с помощью обьекта Canvas компонента Image. Предусмотреть масштабирование графика функции соответственно к размеру формы.
Изображения
 
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 20:31
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
procedure TForm1.Button1Click(Sender: TObject);
var n,i,x0,y0:integer;
    max,mx,my:double;
begin
//найдем максимальное по модулю Y
with StringGrid1 do
 begin
  n:=rowcount-1;
  max:=0;
  for i:=1 to n do
  if abs(strtofloat(cells[1,i]))>max then max:=abs(strtofloat(cells[1,i]));
 end;
with Image1 do
 begin
  x0:=30;
  y0:=height div 2;
  mx:=(width-x0-10)/n; //масхтаб по Х
  my:=(y0-20)/max;  //масштаб по Y
  with Canvas do
   begin
    moveto(x0,y0);lineto(width-30,y0); //оси
    moveto(x0,10);lineto(x0,height-10);
    for i:=1 to n do //засечки и подписи по оси Х
     begin
      moveto(x0+round(mx*(i-1)),y0-3);
      lineto(x0+round(mx*(i-1)),y0+3);
      textout(x0+round(mx*(i-1))+5,y0+10,inttostr(i));
     end;
    for i:=1 to 3 do //засечки и подписи по оси Y
     begin
      moveto(x0-3,y0-round(my*i/10));
      lineto(x0+3,y0-round(my*i/10));
      textout(x0-20,y0-round(my*i/10),formatfloat('0.0',i/10));
      moveto(x0-3,y0+round(my*i/10));
      lineto(x0+3,y0+round(my*i/10));
      textout(x0-25,y0+round(my*i/10),formatfloat('0.0',-i/10));
     end;
    textout(width-40,y0-20,'X');
    textout(x0+5,5,'Y');
    pen.Color:=clRed;   //график
    moveto(x0,y0-round(my*strtofloat(StringGrid1.Cells[1,1])));
    for i:=2 to n do
    lineto(x0+round(mx*(i-1)),y0-round(my*strtofloat(StringGrid1.Cells[1,i])));
   end;
 end;
end;
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 20:38  [ТС]
Можно поуточнять, что такое x0:=30;. Это начальное значение оси координат, но почему именно такое и потом вычисление масштаба тоже интересное. Короче мне плохо понятно именно как просчитаны оси координат. Но спс большое выручили. А масштабирование здесь тоже есть?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 20:41
х0=30, это 30 пикселей от левого края Image.
Посмотрите проект.
Вложения
Тип файла: rar grafic.rar (187.0 Кб, 46 просмотров)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 20:44
А масштабы определяются как отношение размеров полотна к разности максимальных и минимальных значений по осям.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 20:48  [ТС]
Та вроде конечно рисует но все же непонятно не сходится график с значениями. уж совсем
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 20:51
Это в моем проекте? У меня не было ни одной ошибки и рисовало график
Миниатюры
Построение графика на компоненте Image  
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 20:51
Забыл лабель убрать с формы.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 20:54  [ТС]
и идет накладка графиков при новых значениях, не перерисовывается. Сейчас покажу свое
Миниатюры
Построение графика на компоненте Image  
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 20:59
Я то здесь при чем? Я показал как рисовать один конкретный график. Очищайте Image так
Delphi
1
2
3
4
5
 with Canvas do
   begin
    pen.Color:=clBlack;
    fillrect(cliprect);
    .......................
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 21:07  [ТС]
Да спс я разберусь где именно вы значения ложите из компонента и нужно вставить свои
Хотя конечно очень сложная для меня задача. Вы бы немогли мне хоть подсказать куда копать как изменять чтобы я привел ее к своим значениям, просто получается что у вас для одних значений программа работает
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 21:13
Так я же вроде просил написать задание и при чем точное и полное, тогда и сделать что-то можно будет.
Но Вы кинули картинку по которой я написал проектик для построения конкретного графика.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 21:17  [ТС]
Я вам скину проект, можете подправить под мою задачу. Там надо выбрать пункт меню 2 лабораторная в 1 пункте, и там будет ясно как получаются значения, а по кнопке график2 строится этот график
Вложения
Тип файла: rar Лабораторная №3_19.rar (345.8 Кб, 24 просмотров)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.11.2017, 21:25
Я просил текст задания, если не хотите, до свидания.

Добавлено через 4 минуты
А проект Ваш у меня не запускается.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.11.2017, 21:28  [ТС]
Текст задания говорю Составить программу для вычисления значений функции если заданы значения A, B(1-13) и X от X1(2-13) до X2(3-13) с шагом H(1-10).
Delphi
1
y:= power((a+b*x1),2.5)/(1+power(cos(a*x1),3));
А дальше по этим значениям нужно составить график, про который я говорил ранее,в скобках диапазон значений. Дельфи старый у вас версия новая))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2017, 21:28
Помогаю со студенческими работами здесь

Как изменять масштаб графика, отрисованного на компоненте Image, с помощью мыши?
скажите пожалуйста как можно изменять масштаб графика находящийся на компоненте image с помощью мыши, нужно срочно

Как реализовать построение графика по точкам в компоненте TChar?
Проблема заключается в том что, есть набор данных и при построении графика с использованием класса «TFastLineSeries» строится пилообразный...

Построение Графика в Image
Трудность в том что бы поставить деления на осях координат и под делениями поставить цифры. Знаю что надо сделать в цикле (помогите...

Построение графика в Image
Нужно построить в компоненте Image график функции Y=3((|sin(X/15)|)^(1/2)) Помогите, пожалуйста, с кодом

Построение графика в Image
Суть - не корректно рисуется график функции в компоненте Image. До сего момента с графикой не работал, взял рабочий код и подставил свою...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru