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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2017, 21:50   #11
perekatipole
 
Регистрация: 20.04.2017
Сообщений: 9
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Да, пожалуйста, стройте график .. без цифр.
мне кажется мы отошли от темы,у меня вопрос в том,что будет если вместо диапазона написать -1?
perekatipole вне форума Ответить с цитированием
Старый 20.04.2017, 22:20   #12
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от perekatipole Посмотреть сообщение
вместо диапазона написать -1?
Лучше в самой функции, как у меня. Там кстати надо исправить, у вас квадрат , а мне показалось корень .
Надо if c=0, а не if c<=0

Кстати, а нельзя ли точками, а не линиями. Будет проще:
Код:
unit UnitPerekatipole;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Math, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function f(x:real): real;
Var
  c : real;
Begin
 c:=x-1;
 if c=0
  then f:=NaN 
  else f:=(2*x-1)/(sqr(c));
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,x0,y0,XX,YY:Integer;
  mx,my,x,y:Real;
begin
 x0:=Image1.Width div 2;
 y0:=Image1.Height div 2;
 mx:=30;
 my:=10;
 Image1.Canvas.Pen.Color:=clGreen;
 for i:=-200 to 200 do
  begin
   x:=0.05*i;
   y:=f(x);
   if isNaN(y) then Continue;
   XX:=x0+Round(x*mx);
   YY:=y0-Round(y*my);
   Image1.Canvas.Rectangle(XX-1,YY-1,XX+1,YY+1);
  end;
end;
end.
Я на Имаге рисоал.
Изображения
Тип файла: png ppIm.PNG (37.9 Кб, 128 просмотров)

Последний раз редактировалось type_Oleg; 20.04.2017 в 22:24.
type_Oleg вне форума Ответить с цитированием
Старый 20.04.2017, 22:37   #13
perekatipole
 
Регистрация: 20.04.2017
Сообщений: 9
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Лучше в самой функции, как у меня. Там кстати надо исправить, у вас квадрат , а мне показалось корень .
Надо if c=0, а не if c<=0

Кстати, а нельзя ли точками, а не линиями. Будет проще:
Код:
unit UnitPerekatipole;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Math, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function f(x:real): real;
Var
  c : real;
Begin
 c:=x-1;
 if c=0
  then f:=NaN 
  else f:=(2*x-1)/(sqr(c));
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,x0,y0,XX,YY:Integer;
  mx,my,x,y:Real;
begin
 x0:=Image1.Width div 2;
 y0:=Image1.Height div 2;
 mx:=30;
 my:=10;
 Image1.Canvas.Pen.Color:=clGreen;
 for i:=-200 to 200 do
  begin
   x:=0.05*i;
   y:=f(x);
   if isNaN(y) then Continue;
   XX:=x0+Round(x*mx);
   YY:=y0-Round(y*my);
   Image1.Canvas.Rectangle(XX-1,YY-1,XX+1,YY+1);
  end;
end;
end.
Я на Имаге рисоал.
не,надо линиями и тем более я код чуток понял,могу учителю ответить,но эта хрен меня бесит
perekatipole вне форума Ответить с цитированием
Старый 20.04.2017, 22:51   #14
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Ну тогда используйте свой flag, для переключения MoveTo - LineTo. Надо будет еще переключиться в точке разрыва, где y будет NaN ( деление на 0).
type_Oleg вне форума Ответить с цитированием
Старый 23.04.2017, 14:41   #15
perekatipole
 
Регистрация: 20.04.2017
Сообщений: 9
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Ну тогда используйте свой flag, для переключения MoveTo - LineTo. Надо будет еще переключиться в точке разрыва, где y будет NaN ( деление на 0).
как в коде записать не диапазон а просто значение -1?
perekatipole вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться в коде... dimwow Паскаль, Turbo Pascal, PascalABC.NET 3 28.09.2016 08:43
Помогите разобраться в коде p0keT Win Api 1 12.12.2014 13:56
Помогите разобраться в коде fate Общие вопросы по Java, Java SE, Kotlin 5 17.03.2009 22:10