![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Воощем у меня есть график для построения синуса и косинуса,а как мне его переделать для
построения графиков 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
|
||||
|
||||
![]() Там надо подключить модуль Math для других мат. функций, возможно, ещё для этих функций шаг приращения к иксу уменьшить.
Чем больше знаешь, тем сильнее осознаёшь, что знаешь гораздо меньше, чем не знаешь!.. |
Этот пользователь сказал Спасибо DelphiM0ZG за это полезное сообщение: | ||
cyber922 (24.01.2012)
|
#3
|
|||
|
|||
![]() Цитата:
ООо, спасибо, я просто забыл формулы для этих значений, так как в математике не силен...) немножко переделаю) а так классно) |
#4
|
|||
|
|||
![]() Цитата:
|
#5
|
|||
|
|||
![]() Ну, циклоиду делать точно так же:
y = a* (x - sin(X)); |
#6
|
|||
|
|||
![]() Цитата:
как то странно получается, под этой формулой идет просто прямая линия по центру... так и должно быть? |
#7
|
||||
|
||||
![]() Код:
y = a * (x - sin(X)); Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#8
|
|||
|
|||
![]() Цитата:
у меня А ничему не равно, я просто должен их сам задавать... |
#9
|
||||
|
||||
![]() При а=0 будет умножение на ноль. Что тебя удивляет в прямой линии по центру?
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#10
|
|||
|
|||
![]() Цитата:
|