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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2021, 20:09   #1
Susanoo
 
Регистрация: 28.10.2021
Сообщений: 6
Восклицание С использованием компонента Chart построить графики - вроде этого Кубика Рубика нужно сначала разрешить относительно y

С использованием компонента Chart построить графики трех кривых каждого типа в соответствии
с индивидуальным вариантом задания. Предусмотреть возможность выбора пользователем
графика, который необходимо построить (с использованием компонентов ComboBox или
RadioButton). Сохранить полученные графики кривых в виде bmp-файла.

1. Кривые в Декартовой системе координат, явная формула

Цепная линия

2. Кривые в полярной системе координат


3. Кривые в параметрической форме

Астроида

4. Кривые в неявной форме

Кубика Чирнгауса
Изображения
Тип файла: png 1 фото.png (5.9 Кб, 51 просмотров)
Тип файла: png 2 фото.png (5.1 Кб, 49 просмотров)
Тип файла: png 3 фото.png (3.9 Кб, 47 просмотров)
Тип файла: png 4 фото.png (5.8 Кб, 48 просмотров)
Susanoo вне форума Ответить с цитированием
Старый 29.10.2021, 03:08   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Так кому всё-таки нужно построить эти графики? Нам или вам?
Очевидно вам. Вы хоть что-то попытались сами сделать?
northener вне форума Ответить с цитированием
Старый 29.10.2021, 15:32   #3
Susanoo
 
Регистрация: 28.10.2021
Сообщений: 6
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Так кому всё-таки нужно построить эти графики? Нам или вам?
Очевидно вам. Вы хоть что-то попытались сами сделать?
Я пробовал, сделал 1ые 2 графика, но не совсем уверен, что это верно, по 3 и 4 идей пока нет
Susanoo вне форума Ответить с цитированием
Старый 29.10.2021, 21:21   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Исходники - в студию! Чтоб было что обсуждать.
Изображения
Тип файла: jpg ННаВ.jpg (16.6 Кб, 38 просмотров)

Последний раз редактировалось digitalis; 29.10.2021 в 21:27.
digitalis вне форума Ответить с цитированием
Старый 29.10.2021, 21:28   #5
Susanoo
 
Регистрация: 28.10.2021
Сообщений: 6
По умолчанию

digitalis,
Цитата:
Сообщение от digitalis Посмотреть сообщение
Исходники - в студию! Чтоб было что обсуждать.
1 график

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TPointSeries;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
x, y, a: Double;
begin
Chart1.Series[0].Clear();
x := -10;
a := 2;
while x < 10 do begin
y := (a / 2) * (Exp(x / 2) + Exp(-x / 2));
Chart1.Series[0].AddXY(x, y);
x := x + 0.01;
end;
Chart1.SaveToBitmapFile('1 график.bmp');
end;
end.
2 график

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TPointSeries;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
rho,x,y,phi:double;
begin
Chart1.Series[0].Clear();
phi:=0;
while phi <50 do begin
  rho := phi;
x:=phi*cos(phi);
y:=phi*sin(phi);
Chart1.Series[0].AddXY(x,y);
phi:=phi+0.01;
end;
Chart1.SaveToBitmapFile('График2.bmp');
end;

end.
3 график

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Button1: TButton;
    Series1: TPointSeries;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, t, R: Double;
begin
  Chart1.Series[0].Clear();
  t := 0;
  R := 4;
  while t < 10 do begin
    x := R * IntPower(cos(t), 3);
    y := R * IntPower(sin(t), 3);
    Chart1.Series[0].AddXY(x, y);
    t := t + 0.01;
  end;
Chart1.SaveToBitmapFile('График3.bmp');
end;

end.
Изображения
Тип файла: png 1 график.png (26.2 Кб, 40 просмотров)
Тип файла: png 2 график.png (42.4 Кб, 2 просмотров)
Тип файла: png 3 график.png (19.0 Кб, 3 просмотров)

Последний раз редактировалось BDA; 30.10.2021 в 14:00.
Susanoo вне форума Ответить с цитированием
Старый 29.10.2021, 21:43   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Так вроде этого Кубика Рубика нужно сначала разрешить относительно y
Код:
   tmp := 8*a + x ;
   y := Sqrt((a-x)*tmp*tmp/a/27) ;
digitalis вне форума Ответить с цитированием
Старый 29.10.2021, 21:47   #7
Susanoo
 
Регистрация: 28.10.2021
Сообщений: 6
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Так вроде этого Кубика Рубика нужно сначала разрешить относительно y
Код:
   tmp := 8*a + x ;
   y := Sqrt((a-x)*tmp*tmp/a/27) ;
я за него еще не брался, но спасибо за подсказку.

Интересно, хотя бы то, что я построил верно или есть где то ошибки?
Susanoo вне форума Ответить с цитированием
Старый 30.10.2021, 11:12   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

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

Последний раз редактировалось digitalis; 30.10.2021 в 11:16.
digitalis вне форума Ответить с цитированием
Старый 31.10.2021, 00:04   #9
Susanoo
 
Регистрация: 28.10.2021
Сообщений: 6
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TPointSeries;
    rb1: TRadioButton;
    rb2: TRadioButton;
    rb3: TRadioButton;
    rb4: TRadioButton;
    procedure rb1Click(Sender: TObject);
    procedure rb2Click(Sender: TObject);
    procedure rb3Click(Sender: TObject);
    procedure rb4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.rb1Click(Sender: TObject);
var
  a,f: Integer;
x, y, k: Double;
begin
  a:=100;
  Chart1.BottomAxis.SetMinMax(-1*a-10, a+10);
  Chart1.LeftAxis.SetMinMax(0, a/1);
Chart1.Series[0].Clear();

x := -100;
f := 20;
while x < 100 do begin
y := (f / 2) * (Exp(x / f) + Exp(-x / f));
Chart1.Series[0].AddXY(x, y, '');
x := x + 0.1;
end;
Chart1.SaveToBitmapFile('1 ãðàôèê.bmp');
end;
procedure TForm1.rb2Click(Sender: TObject);
var
rho,x,y,phi:double;
begin
  Chart1.BottomAxis.Automatic := True;
Chart1.LeftAxis.Automatic := True;
Chart1.Series[0].Clear();
phi:=0;
while phi <2000 do begin
  rho := phi;
x:=phi*cos(phi);
y:=phi*sin(phi);
Chart1.Series[0].AddXY(x,y);
phi:=phi+1;
end;
Chart1.SaveToBitmapFile('Ãðàôèê2.bmp');
end;

procedure TForm1.rb3Click(Sender: TObject);
var
  x, y, t, R: Double;
begin
  Chart1.Series[0].Clear();
  t := 0;
  R := 4;
  while t < 10 do begin
    x := R * IntPower(cos(t), 3);
    y := R * IntPower(sin(t), 3);
    Chart1.Series[0].AddXY(x, y);
    t := t + 0.01;
  end;
Chart1.SaveToBitmapFile('Ãðàôèê3.bmp');
end;

procedure TForm1.rb4Click(Sender: TObject);
var
x, y2, y1, a: Double;
begin
Chart1.BottomAxis.Automatic := True;
Chart1.LeftAxis.Automatic := True;
Chart1.Series[0].Clear();
x := -2;
a := -2;
while x < 40 do begin
y1 := -1 * Sqrt((a-x)*Power(8*a+x, 2)/a/27);
y2 := Sqrt((a-x)*Power(8*a+x, 2)/a/27);
Chart1.Series[0].AddXY(x, y1, '');
Chart1.Series[0].AddXY(x, y2, '');
x := x + 0.1;
end;
Chart1.SaveToBitmapFile('Ãðàôèê4.bmp');
end;
end.
Вот решение всех графиков, может кому пригодится
Susanoo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Даны натуральные числа a,b,c которые указывают дату(число,месяц,год). Найти номер этого дня с начала года. нужно составить прогу с использованием класса Vera Pav Помощь студентам 1 05.06.2019 19:03
по заданной матрице смежности простого графа построить каркас этого графа с использованием поиска вширь d1m2o3n4 Помощь студентам 0 22.06.2011 22:43
Структура данных для кубика Рубика Gut Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 07.11.2010 15:48
Сколько комбинаций у кубика Рубика? Altera Свободное общение 31 24.11.2009 03:12
Модель Кубика-Рубика Ulex Gamedev - cоздание игр: Unity, OpenGL, DirectX 31 21.11.2009 20:10