Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.10.2010, 22:32
llistopad llistopad вне форума
Прохожий
 
Регистрация: 26.10.2010
Сообщения: 3
Репутация: 10
Вопрос Графики

нужна программы строящая график арккос при нажатии только одной кнопки, так как вот эта прога (из учебника) строит для арктангенса

Пожалуйста

все файлы программы - http://upwap.ru/1096645

код pas -

Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
     var
xCenter, yCenter: Integer;
i, screenX, screenY, x2:Integer;
dx, x, y: Single;
z: Extended;

begin
with canvas do
begin

xCenter:= 400;
yCenter:= 300;

MoveTo (xCenter-300,yCenter);
LineTo (xCenter+300,yCenter);
MoveTo (xCenter,yCenter-250);
LineTo (xCenter,yCenter+250);
canvas.TextOut(xCenter+10,yCenter+10,'0');
canvas.TextOut(xCenter+10,yCenter-250,'y');
canvas.TextOut(xCenter+300,yCenter+10,'x');

dx := 0.01;
x := -3.0;
y := -ArcTan (x);

for i:=1 to 600 do
begin
screenX := Round (x * 100) + xCenter;
screenY := Round (y * 100) + yCenter;
MoveTo (screenX, screenY);
x:= x + dx;
y:= -ArcTan (x);
screenX := Round (x * 100.0) + xCenter;
screenY := Round (y * 100.0) + yCenter;
LineTo (screenX, screenY);
end;

dx := 1.0;
x := -3.0;
for i:=1 to 7 do
begin
screenX := Round (x * 100) + xCenter;
screenY := yCenter - 5;
MoveTo (screenX, screenY);
screenY := yCenter + 5;
LineTo (screenX, screenY);
if Round(x) <> 0 then
canvas.TextOut(screenX, screenY + 5, IntToStr (Round(x)));
x := x + dx;
end;

screenY := Round (1.57 * 100.0) + yCenter;
screenX := xCenter - 5;
MoveTo (screenX, screenY);
screenX := xCenter + 5;
LineTo (screenX, screenY);
canvas.TextOut(screenX+5, screenY-2, 'pi/2');

screenY := -Round (1.57 * 100.0) + yCenter;
screenX := xCenter - 5;
MoveTo (screenX, screenY);
screenX := xCenter + 5;
LineTo (screenX, screenY);
canvas.TextOut(screenX+5, screenY-2, '-pi/2');

end;

end;

end.
end;

end.
Admin: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 26.10.2010 в 22:39.
Ответить с цитированием
  #2  
Старый 26.10.2010, 23:43
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну и в чем проблема заменить Arctan на Arccos (или как он там называется в модуле math)?
Ответить с цитированием
  #3  
Старый 26.10.2010, 23:45
llistopad llistopad вне форума
Прохожий
 
Регистрация: 26.10.2010
Сообщения: 3
Репутация: 10
По умолчанию

не помогает
Ответить с цитированием
  #4  
Старый 27.10.2010, 02:09
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ошибка в 51 и 54 строчке
З.Ы. Как правильно задавать вопросы.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 27.10.2010 в 02:34.
Ответить с цитированием
  #5  
Старый 27.10.2010, 02:32
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Не буду заставлять всех очень долго думать.
Функция ArcCos(x) имеет диапазон -1<x<1, а у Вас от -3 до 3...
З.Ы. не забыли
Код:
uses Math
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 27.10.2010 в 02:35.
Ответить с цитированием
  #6  
Старый 28.10.2010, 00:07
llistopad llistopad вне форума
Прохожий
 
Регистрация: 26.10.2010
Сообщения: 3
Репутация: 10
По умолчанию =)

Спасибо)))))
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025