В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык

Кто может нарисовать гиперболу и гиперболический элипс вв паскале или дельфи

Ответ:
ногл289
ногл289
23.07.2020 11:00
Unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  var
  x,y,t:real;
  x1,y1,M:integer; //M -коэффициент масштабирования
begin
  x1:=Image1.Width div 2;
  y1:=Image1.Height div 2;
  with Image1.Canvas do
  begin
    MoveTo(x1,0); LineTo(x1,Image1.Height);
    MoveTo(x1,0); LineTo(x1-5,10);
    MoveTo(x1,0);LineTo(x1+5,10);
    MoveTo(0,y1);LineTo(Image1.Width,y1);
    LineTo(Image1.Width-10,y1-5);
    MoveTo(Image1.Width,y1); LineTo(Image1.Width-10,y1+5);
    TextOut(x1+1,y1+1,'0');
    TextOut(Image1.Width-16,y1+2,'X');
    TextOut(x1-15,0,'Y');
    x := -200;
    y := 1/x;
    M:=strtoint(edit1.text);
    moveto(x1+round(x)*M,(y1-round(y)*M));
    repeat
      x:=x+0.1;
      if x<>0 then //точка разрыва
      begin
       y := 1/x;
       lineto(x1+round(x*M),(y1-round(y*M)));
      end
      else
      begin
       x:=x+0.1;
       y := 1/x;
       MoveTo(x1+round(x*M),(y1-round(y*M)));
      end;
    until x>=200;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption:='коэффициент масштабирования';
  Button1.Caption:='Построить';
  Edit1.Text:='15';
  Button1.OnClick(sender);//Построение
end;

end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?