Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2014, 10:07   #1
ZdSaliery
Пользователь
 
Регистрация: 22.03.2014
Сообщений: 14
По умолчанию Работа с графиком в Delphi.

Добрый день. Получил задание, и не знаю как его можно реализовать. Суть заключается в следующем: программа должна рисовать график (ДН), который будет выводится по нажатию на кнопку, в отдельном окне. При этом надо придумать способ, чтобы просчитанные в цикле данные были отнормированны по максимальному значению DN.
Вот часть кода которая просчитывает точки графика.
Пожалуйста, подскажите как это возможно реализовать. Заранее благодарен
Код:
procedure TForm1.Button8Click(Sender: TObject);
var
LTeta1:integer;
Q12:integer;
begin
  for LTeta1:=-90 to 90 do
  for Q12:=0 to (sqr(N)-1) do
begin
begin
  I:=Q12 mod N;  // номер столбца элемента
  G:=Q12 div N;   //  номер строки элемента
  HX:=D*(Abs(I+1/2)-N/2); // координата X элемента
  HY:=D*(Abs(G+1/2)-N/2);   // координата Y элемента
  L:=sqrt(sqr(HX-FX)+sqr(HY-FY)+sqr(H));  // расстояние от облучателя до элемента
  AB:=Abs(sqrt((sqr(HX-(HX-FX)))*(sqr(HY-(HY-FY))))); // проекция расстрояний между элементами
  Phi2:=Arctan((-HY+(HY-FY))/(HX+(HY-FX)));
  Phi3:=Phi2-Phi1;
  Finabeg:=L*((2*pi)/HL); // фазовый набег
  FiDN:=F1+Finabeg; // полная фаза ДН
  DN:=(Ampl*cos((2*pi)/HL*(cos(Phi3)*AB)*sin(LTeta1)+FiDN))+DN; // ДН от углов тета и фи
end;
end;
end;
ZdSaliery вне форума Ответить с цитированием
Старый 13.05.2014, 10:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как отрисовать график? Ну я бы использовал компонент TChart. Даже если нужно рисовать какую нить сложну фигуру со спиралями или лемнискатами он вполне справится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2014, 14:38   #3
ZdSaliery
Пользователь
 
Регистрация: 22.03.2014
Сообщений: 14
По умолчанию

Stilet, а не могли бы вы чуть подробнее объяснить? Мои познания в делфи, мягко говоря, на уровне novice, поэтому буду рад любым пояснениям, и направлениям в строну которых нужно искать.
ZdSaliery вне форума Ответить с цитированием
Старый 13.05.2014, 14:56   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Если набрать в поиске график tchart delphi, то можно найти много интересного.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 13.05.2014, 15:25   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Та че не мог бы? Вотъ один из примеров построения графика:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var s:TLineSeries; x:double;c:TChart;
begin
 c:=TChart.Create(form1);
 s:=TLineSeries.Create(c);
 c.Align:=alClient;
 c.Parent:=self;
 s.ParentChart:=C;
 x:=-9; while x<15 do begin
  s.AddXY(x,0-3*cos((x-2)/pi)*sin(x-0.5)/exp((x)/5)*cos(x/4)-0.5);
  x:=x+1;
 end;
end;

end.
Как бы х.з. че он строит. Какофойду какую-то, уж не помню, но как минимальный пример - подойдет.
И да - ZX Spectrum-128 дело говорит. Примеро у нас на форуме много, если в поиск набрать TChart.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2014, 08:46   #6
ZdSaliery
Пользователь
 
Регистрация: 22.03.2014
Сообщений: 14
По умолчанию

А насчет нормирования - вы не могли бы подсказать как это реализовать? Данные после единоразового просчета куда то записываются или сразу отмечаются на графике? Просто мой цикл должен просчитывать каждый элемент решетки для каждого угла, и потом значение на каждом угле суммировать, поэтому значения могут получатся большие, и надо их отнормировать относительно самого большого. Помогите пожалуйста!
ZdSaliery вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте. Работа с графиком.. ildar28 Помощь студентам 3 31.03.2012 02:37
Графиком в delphi assackura Помощь студентам 0 29.03.2012 22:25
Проблема с графиком в Delphi. JDD Помощь студентам 4 05.05.2010 16:23