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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 22:24   #1
Айдар
Форумчанин
 
Регистрация: 20.06.2009
Сообщений: 195
По умолчанию Canvas построить tg на плоскости

Вообщем тут надо нарисовать эти 2 фун-ции пытаюсь сделать не получается вот исходник
косинус я нарисовал, логарифм тоже только не могу его сделать от начал координат, а вот тангенс не могу помогите.
функ.zip
Айдар вне форума Ответить с цитированием
Старый 20.04.2011, 23:10   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
тангенс не могу
Что значит "не могу" ?
Ты ждешь ликбеза про тангенс как периодическую ф-цию, имеющую точки разрыва ?
Или что ?)
mss вне форума Ответить с цитированием
Старый 06.06.2019, 09:49   #3
Dr. Z. König
Новичок
Джуниор
 
Регистрация: 06.06.2019
Сообщений: 1
По умолчанию

Код:
unit Main;

interface

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

type
  TForm1 = class(TForm)
    procedure FormClick(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  x0,y0,x,y:integer;
implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);
begin

  Canvas.Pen.Color:=clGreen;
  x:=0;
  Canvas.MoveTo(x0,y0);
  While x0+x<=Form1.Width do
  begin
    if round(cos(x/20)*20)<>0 then begin
                                    y:=y0-round(sin(x/20)/cos(x/20)*20);
                                    Canvas.LineTo(x0+x,y);
                                   end
                              else begin
                                    x:=x+1;
                                    y:=y0-round(sin(x/20)/cos(x/20)*20);
                                    Canvas.MoveTo(x0+x,y);
                                   end;
    x:=x+1;
  end;
  x:=0;
  Canvas.MoveTo(x0,y0);
  While x0-x>=0 do
  begin
    if round(cos(x/20)*20)<>0 then begin
                                    y:=y0-round(-sin(x/20)/cos(x/20)*20);
                                    Canvas.LineTo(x0-x,y);
                                   end
                              else begin
                                    x:=x+1;
                                    y:=y0-round(-sin(x/20)/cos(x/20)*20);
                                    Canvas.MoveTo(x0-x,y);
                                   end;
    x:=x+1;
  end;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  x0:=Form1.Width div 2;
  y0:=Form1.Height div 2;
  Canvas.Pen.Color:=clBlack;

  Canvas.MoveTo(x0,0);
  Canvas.LineTo(x0-5,20);
  Canvas.MoveTo(x0,0);
  Canvas.LineTo(x0+5,20);
  Canvas.TextOut(x0+10,2,'Y');
  y:=y0;
  While y>0 do
  begin
    Canvas.MoveTo(x0-5,y);
    Canvas.LineTo(x0+5,y);
    y:=y-20;
  end;
  y:=y0;
  While y<Form1.Height do
  begin
    Canvas.MoveTo(x0-5,y);
    Canvas.LineTo(x0+5,y);
    y:=y+20;
  end;

  Canvas.MoveTo(Form1.Width-15,y0);
  Canvas.LineTo(Form1.Width-35,y0-5);
  Canvas.MoveTo(Form1.Width-15,y0);
  Canvas.LineTo(Form1.Width-35,y0+5);
  Canvas.TextOut(Form1.Width-37,y0+10,'X');
  x:=x0;
  While x>0 do
  begin
    Canvas.MoveTo(x,y0-5);
    Canvas.LineTo(x,y0+5);
    x:=x-20;
  end;
  x:=x0;
  While x<Form1.Width do
  begin
    Canvas.MoveTo(x,y0-5);
    Canvas.LineTo(x,y0+5);
    x:=x+20;
  end;

  Canvas.MoveTo(x0,0);
  Canvas.LineTo(x0,Form1.Height);
  Canvas.MoveTo(0,y0);
  Canvas.LineTo(Form1.Width,y0);

end;

end.
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 06.06.2019 в 13:20.
Dr. Z. König вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
множества точек на плоскости TachOn Фриланс 6 20.01.2010 18:30
Прямые на плоскости Spark3r Общие вопросы C/C++ 10 18.01.2010 01:16
поворот на плоскости gluik Общие вопросы C/C++ 2 10.04.2009 09:26
Уравнение плоскости eoln Помощь студентам 5 27.09.2008 09:22