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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 23:24   #1
лорд преисподней
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 17
По умолчанию

как мне построить окружность по точкам с помощью этой функции

cos (x)+cos (2x)-cos (3x) =1 и его решение
cos(x)-cos(3x)-(1-cos(2x))=0
2*sin(x)*sin(2x)-2*sin^2(x)=0
2*sin(x)*(sin(2x)-sin(x))=0
4*sin(x)*sin(x/2)*cos(3x/2)=0

также там есть пояснение
sin(x)=0
sin(x/2)=0
cos(3x/2)=0
из этого следует что
x1=πи*k
x2=2*пи*n
x3=пи+2*пи*m/3

ещё есть вотакая программа которая строит график функции мне надо чтобы место графика строилась окружность также как и график по точкам
код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

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

var
  Form1: TForm1;

  x1,x2:real; // границы изменения аргумента функции
  y1,y2:real; // границы изменения значения функции
  x:real; // аргумент функции
  y:real; // значение функции в точке х
  dx:real; // приращение аргумента


  l,b:integer; // левый нижний угол области вывода графика
  w,h:integer; // ширина и высота области вывода графика
  mx,my:real; // масштаб по осям X и Y
  x0,y0:integer; // точка - начало координат


implementation
{$R *.dfm}

Function f(x:real):real;
begin
f:=2*Sin(x)*exp(x/5);
end;
// строит график функции
procedure GrOfFunc;

begin // область вывода графика
l:=10; // X - координата левого верхнего угла
b:=Form1.ClientHeight-20; //У - координата левого верхнего угла
h:=Form1.ClientHeight-40; // высота
w:=Form1.Width-40; // ширина
x1:=0; // нижняя граница диапазона аргумента
x2:=25; // верхняя граница диапазона аргумента
dx:=0.01; // шаг аргумента

// найдем максимальное и минимальное значения
// функции на отрезке [x1,x2]

y1:=f(x1); // минимум
y2:=f(x1); //максимум
x:=x1;
repeat
y := f (x);
if y < y1 then y1:=y;
if y > y2 then y2:=y;
x:=x+dx; until (x >= x2);
// вычислим масштаб
my:=h/abs(y2-y1); // масштаб по оси Y
mx:=w/abs(x2-x1); // масштаб по оси X
x0:=1;
y0:=b-Abs(Round(y1*my)) ;
with form1.Canvas do
begin // оси
MoveTo(l,b);LineTo(l,b-h);
MoveTo(x0,y0);LineTo(x0+w,y0);
TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3));
TextOut(l+5,b,FloatToStrF(y1,ffGeneral,6,3));
// построение графика
x:=x1;
end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if (x < x2) then begin
  y:=f(x);
  canvas.Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clwhite;
  x:=x+dx;
 end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));
 GrOfFunc
end;

end.

Последний раз редактировалось Stilet; 18.11.2009 в 08:57.
лорд преисподней вне форума Ответить с цитированием
Старый 18.11.2009, 09:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чесслово не очень понял что это за функции такие, но я бы для построения избрал TChart - специально предназначенный для таких приколов:Вот построение вполне сносной окружности
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const radius=200;
var x:double;
begin
Series1.XValues.Order:=loNone;
x:=0; while x<2*pi do begin
 Series1.AddXY(radius*cos(x),radius*sin(x));
 x:=x+0.1;
end;
end;

end.
Только поубирал бы в его свойствах сетку, легенды, подсказки... Короче оставил чистую картинку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построение окружности по 3 точкам в Delphi ксона Помощь студентам 16 12.12.2009 17:14
рисование окружности в конве по точкам лорд преисподней Общие вопросы Delphi 8 17.11.2009 21:44
построение окружности на диаграмме excel MilanAC Помощь студентам 1 18.08.2009 18:18
Вычисление функции заданной в виде разложения в ряд StudeHt Паскаль, Turbo Pascal, PascalABC.NET 2 02.05.2009 20:08
Вычисление функции с заданной точностью. Absent Помощь студентам 1 21.11.2008 13:30