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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 15:03   #1
лорд преисподней
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 17
По умолчанию рисование окружности в конве по точкам

здраствуйте кто может написать сюда функцию построение окружности очень прошу а то я немогу разобраться с кодом
код:

Код:
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.1; // шаг аргумента

// найдем максимальное и минимальное значения
// функции на отрезке [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; 17.11.2009 в 15:13.
лорд преисподней вне форума
Старый 17.11.2009, 15:14   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

>>> поиск <<<
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Старый 17.11.2009, 15:15   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну впиши
Код:
Canvas.Ellipse(x-radius,y-radius,x+radius,y+radius);
Куда тебе нужно.
I'm learning to live...
Stilet вне форума
Старый 17.11.2009, 15:19   #4
лорд преисподней
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 17
По умолчанию

нет мне надо чтобы круг сам рисовался как буд то рисуеш ручкой по бумаге
лорд преисподней вне форума
Старый 17.11.2009, 15:22   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

а вы поняли, что я поменял в прошлом вашем задании?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Старый 17.11.2009, 15:22   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
canvas.Polyline();
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума
Старый 17.11.2009, 15:31   #7
лорд преисподней
Пользователь
 
Регистрация: 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

Последний раз редактировалось mihali4; 19.11.2009 в 02:16.
лорд преисподней вне форума
Старый 17.11.2009, 21:24   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вспомните теорему синусов-косинусов... постройте вектор, его вершина при изменении угла от 0-360гр будет описывать окружность
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Старый 17.11.2009, 21:44   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Закрыто.
Надоело править бесконечные нарушения.
Специально для "лорда":
каждый раз, когда я буду встречать флуд (к нему относится и размещение своих постов друг за другом) - я буду закрывать тему.
mihali4 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построение окружности по 3 точкам в Delphi ксона Помощь студентам 16 12.12.2009 17:14
Си++ Эллипс по заданным точкам serg777321 Помощь студентам 1 25.05.2009 11:58
Дивижение окружности по окружности Irina8340 Помощь студентам 10 13.05.2009 20:25
Движение объекта по точкам(OpenGl).Подскажите. spamer Общие вопросы Delphi 12 10.04.2009 17:06
движение окружности по окружности MyQwErTy Помощь студентам 13 04.11.2008 22:52