Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.01.2012, 15:45
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
Радость построение графиков

Воощем у меня есть график для построения синуса и косинуса,а как мне его переделать для


построения графиков y=tg (x), y=ctg (x)
построения графиков y=sec (x), y=cosec (x)
построения графика циклоиды y=a (t-sin t)


??
Код:
unit ugraf;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons;

type
  TFgraf = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure formcreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Fgraf: TFgraf;
implementation
{$R *.dfm}
procedure TFgraf.BitBtn1Click(Sender: TObject);
var
alpha1, alpha2: Integer; // переменные для начального 
// и конечного значения угла
z: integer; // переменная для организации цикла
q: integer; // внутренний счетчик
fun: integer; // Значение функции в цикле
begin
  alpha1:= StrToInt(Edit2.text);   //Считываем начальное значение угла
 alpha2:= StrToInt(Edit3.Text);  // Конечное значение угла
 q:= 2;
 for z:= alpha1 to alpha2 do    // Создаем цикл от начального до конечного 
//значения угла
 begin
 if UpperCase(Edit1.text) = 'SIN' then
 fun:= round(sin(z*3.14/180)*60);
 if UpperCase(Edit1.text) = 'COS' then
 fun:= round(cos(z*3.14/180)*80);
 image1.canvas.pixels[q,fun+ image1.Height div 2]:= clBlack;
 inc(q);
 end;
end;
procedure TFgraf.BitBtn2Click(Sender: TObject);
var r: TRect;
begin
r:= rect(0, 0, image1.width, image1.height);
with Image1.canvas do
begin
 brush.style:= bsSolid;
 fillrect(r);
 pen.color:= clRed;
 rectangle(2, 2, image1.width-2, image1.height-2);
 moveto(2,image1.Height div 2);
lineto(image1.width-2,Image1.Height div 2);
end;
end;
procedure TFgraf.formcreate(Sender: TObject);
begin
  edit1.text:= 'SIN';
edit2.text:= '1';
edit3.text:= '1000';
end;
end.
Ответить с цитированием
  #2  
Старый 24.01.2012, 19:48
Аватар для DelphiM0ZG
DelphiM0ZG DelphiM0ZG вне форума
Новичок
 
Регистрация: 22.10.2011
Сообщения: 62
Репутация: 666
По умолчанию Так пойдёт?

Там надо подключить модуль Math для других мат. функций, возможно, ещё для этих функций шаг приращения к иксу уменьшить.
Вложения
Тип файла: zip Так пойдёт.zip (3.6 Кбайт, 32 просмотров)
__________________
Чем больше знаешь, тем сильнее осознаёшь, что знаешь гораздо меньше, чем не знаешь!..
Ответить с цитированием
Этот пользователь сказал Спасибо DelphiM0ZG за это полезное сообщение:
cyber922 (24.01.2012)
  #3  
Старый 24.01.2012, 20:54
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от DelphiM0ZG
Там надо подключить модуль Math для других мат. функций, возможно, ещё для этих функций шаг приращения к иксу уменьшить.

ООо, спасибо, я просто забыл формулы для этих значений, так как в математике не силен...) немножко переделаю) а так классно)
Ответить с цитированием
  #4  
Старый 24.01.2012, 21:21
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от cyber922
ООо, спасибо, я просто забыл формулы для этих значений, так как в математике не силен...) немножко переделаю) а так классно)
а как циклоиду сделать?
Ответить с цитированием
  #5  
Старый 24.01.2012, 22:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, циклоиду делать точно так же:

y = a* (x - sin(X));
Ответить с цитированием
  #6  
Старый 25.01.2012, 07:18
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, циклоиду делать точно так же:

y = a* (x - sin(X));

как то странно получается, под этой формулой идет просто прямая линия по центру... так и должно быть?
Ответить с цитированием
  #7  
Старый 25.01.2012, 07:21
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Код:
y = a * (x - sin(X));
A у тебя чему равно?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #8  
Старый 25.01.2012, 07:52
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Код:
y = a * (x - sin(X));
A у тебя чему равно?



у меня А ничему не равно, я просто должен их сам задавать...
Ответить с цитированием
  #9  
Старый 25.01.2012, 07:57
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

При а=0 будет умножение на ноль. Что тебя удивляет в прямой линии по центру?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 25.01.2012, 08:25
cyber922 cyber922 вне форума
Новичок
 
Регистрация: 07.10.2011
Сообщения: 77
Версия Delphi: Turbo Delphi 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
При а=0 будет умножение на ноль. Что тебя удивляет в прямой линии по центру?
так если я сам меняю допустим на какие то значения, то все равно лини прямая.... вот это меня и смущает, все как бы правильно, но не понятно..
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter