Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 48
1

Сигнал в виде прямоугольника

29.11.2016, 20:43. Показов 1572. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, может кто то подсказать, как построить в TChart прямоугольную периодическую функцию? Вся суть, чтобы можно было задать амплитуду(А) и период(Т).
Миниатюры
Сигнал в виде прямоугольника  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2016, 20:43
Ответы с готовыми решениями:

Сигнал в виде ступеньки в tchart
Помогите, как создать в ступенчатый сигнал в TChart? Чтобы можно было задать высоту (А) и...

Распечатать числа в виде прямоугольника
2 задание 4 PR1 (K,N), где k<n, которая печатает числа в виде прямоугольного треугольника: k k+1...

Вывод данных в виде прямоугольника
Всем привет. Разрабатываю одно приложение. На данный момент столкнулся с проблемой. По ТЗ нужно...

Представить сигнал из Wave-файла в виде осциллограммы
Представить сигнал записан в wav файле без использования звукового редактора в виде осциллограммы...

10
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,250
30.11.2016, 03:53 2
А в чем проблема?
В TChart достаточно задать точки, где график меняет своё направление.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.11.2016, 12:56 3
Лучший ответ Сообщение было отмечено Lol_niko как решение

Решение

Можно так.
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
procedure TForm1.Button1Click(Sender: TObject);
var a,t,x:integer;
    n,i:Integer;
    m:array of TPoint;
begin
a:=30; //амплитуда
t:=40; //период
n:=10; // количество циклов
x:=0;  //начало по Х
SetLength(m,n*4);//создаем массив точек
for i:=0 to n*4-1 do
 begin
   m[i].X:=x;
   if i mod 4=1 then x:=x+t;
   case i mod 8 of
   0,3,4,7:m[i].Y:=0;
   1,2:m[i].Y:=a;
   5,6:m[i].Y:=-a;
   end;
 end;
 //задаем некоторые параметры осей
With Chart1.LeftAxis do
 begin
  Automatic := False ;
  SetMinMax(-a-10,a+10);
  Increment:=a;
 end;
 With Chart1.BottomAxis do
 begin
  Automatic := False ;
  SetMinMax(-10,n*t+10);
  Increment:=t;
 end;
// строим график 
for i:=0 to n*4-1 do
series1.addXY(m[i].X,m[i].Y,'',clBlue);
end;
1
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 48
13.12.2016, 11:10  [ТС] 4
Спасибо большое, очень помогло

Добавлено через 55 минут
Puporev, а не подскажешь, как этот код преобразовать в треугольную функцию? Чтобы точки 1 и 4 не только по Y строились, но и по X(половина запаздывания).

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
procedure TForm1.Button1Click(Sender: TObject);
var a,t,x:integer;
    n,i:Integer;
    m:array of TPoint;
begin
a:=30; //амплитуда
t:=40; //запаздывание
n:=10; // количесвто циклов
x:=0;  //начало по X
SetLength(m,n*3);//создаем массив точек
for i:=0 to n*3-1 do
 begin
   m[i].X:=x;
   if i mod 3=1 then x:=x+t;
   case i mod 6 of
   0,2,3:m[i].Y:=0;
   1:m[i].Y:=a;
   4:m[i].Y:=-a;
   end;
 end;
 //залаем некоторые параметры осей
With Chart1.LeftAxis do
 begin
  Automatic := False ;
  SetMinMax(-a-10,a+10);
  Increment:=a;
 end;
 With Chart1.BottomAxis do
 begin
  Automatic := False ;
  SetMinMax(-10,n*t+10);
  Increment:=t;
 end;
// строим график
for i:=0 to n*3-1 do
series1.addXY(m[i].X,m[i].Y,'',clBlue);
end;
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.12.2016, 14:05 5
Цитата Сообщение от Lol_niko Посмотреть сообщение
как этот код преобразовать в треугольную функцию?
Нарисуй что нужно, не понял.
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 48
13.12.2016, 15:01  [ТС] 6
Puporev,
Миниатюры
Сигнал в виде прямоугольника  
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.12.2016, 15:32 7
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a:=30; //амплитуда
t:=40; //запаздывание
n:=10; // количество циклов
x:=0;  //начало по X
SetLength(m,n*3);//создаем массив точек
for i:=0 to n*3-1 do
 begin
   m[i].X:=x;
   case i mod 4 of
   0,2:m[i].Y:=0;
   1:m[i].Y:=a;
   3:m[i].Y:=-a;
   end;
  x:=x+t div 2;
 end;
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 48
20.12.2016, 08:35  [ТС] 8
Puporev, Почему то при запуске ошибка в строчке: "With Chart1.LeftAxis do"
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.12.2016, 08:46 9
А раньше не было? Ведь код я писал еще 30.11 и Вы его видели. У меня ошибок не было.
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 48
20.12.2016, 10:46  [ТС] 10
Puporev, В прямоугольном сигнале ошибок нет, а в треугольном есть.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.12.2016, 10:51 11
Ну так треугольный это ты писал, я только показал что нужно изменить. Про оси я ничего не писал, смотри внимательно программу. Если вообще не рубишь, а только портить умеешь, то выложи архив проекта.
0
20.12.2016, 10:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2016, 10:51
Помогаю со студенческими работами здесь

Напечатать элементы левого нижнего прямоугольника в виде таблицы
Помогите с заданием:( Задана матрица D(F,E). B-й рядок и А-й столбик, где 2<B<F-1 , 2<A<E-1 ,...

Составить программу для вывода на экран таблицы чисел в виде прямоугольника
Составить программы для вывода на экран таблицы чисел в виде: 1 1 1 1 1 3 3 3 3 3...

Вывести через параллельный порт сигнал задания скорости в виде экспоненты
Здравствуйте.необходимо написать программу на Assembler для микроконтроллера msp430. задание:...

Вывести на форму загрузку CPU и графически отобразить это в виде заливки прямоугольника
Добрый день! Хочу вывести на форму загрузку CPU и графически отобразить это в виде заливки...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru