Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.04.10;
Скачать: CL | DM;

Вниз

ГРАФИК ТРАКТРИСЫ   Найти похожие ветки 

 
Ivan   (2012-05-17 20:57) [0]

вообщем программа не работает.не рисует график трактрисы.Что-то не так. если что исправьте.убираю логарифм работает ,только это не трактриса...

чем быстрее поможете тем лучше.юлагодарю

<procedure TForm1.Button1Click(Sender: TObject);
var xc,yc,w,h,i:integer;
   a,t,r,mx,my,x,y:real;
begin
xc:=Width div 2;
yc:=ClientHeight div 2-30;
w:=(xc-10);
h:=(yc-10);
mx:=(w-10)/5;
my:=(h-10)/5;
with Canvas do
begin
 Brush.Color:=clWhite;
 Pen.Color:=clBlack;
 rectangle(5,5,2*w+5,2*h+5);
 Pen.Width:=3;
 MoveTo(10,yc);
 LineTo(2*w,yc);
 MoveTo(xc,10);
 LineTo(xc,2*h);
 textout(2*w-20,yc-20,"X");
 textout(xc-20,10,"Y");
 textout(xc+10,yc+10,"0");
 Pen.Width:=1;
 Pen.Style:=psDash;
 for i:=1 to 5 do
  begin
   MoveTo(xc+round(i*mx),10); LineTo(xc+round(i*mx),2*h);
   MoveTo(xc-round(i*mx),10); LineTo(xc-round(i*mx),2*h);
   textout(xc+round(i*mx),yc+10,Inttostr(i));
   textout(xc-round(i*mx),yc+10,Inttostr(-i));
   MoveTo(10,yc-round(i*my)); LineTo(2*w,yc-round(i*my));
   MoveTo(10,yc+round(i*my)); LineTo(2*w,yc+round(i*my));
   textout(xc-30,yc-round(i*my),Inttostr(i));
   textout(xc-30,yc+round(i*my),Inttostr(-i));
  end;
t:= 0; a:= 60;
while t<=2*pi+1e-8 do
 begin     {  if (cos(phi/2)<>0)and(sin(phi/2)<>0) then
 begin
            }
   x:=a*ln(sin(t/2)/cos(t/2))+cos(t);
  y:=a*sin(t);
  pixels[xc+round(x*mx),yc-round(y*my)]:=clred;
  t:=t+0.001;
 end;
end;
end;

end.>


 
brother ©   (2012-05-17 21:06) [1]

> чем быстрее поможете тем лучше.юлагодарю

давай через месяц?
зы. скоро - толкько кошки родятся...


 
Ivan   (2012-05-17 21:13) [2]

НЕ Я СЕРЬЕЗНО.)))))В ЧЕМ ФИШКА А?


 
Ivan   (2012-05-17 21:22) [3]

...
begin       if (cos(t/2)<>0)and(sin(t/2)<>0) then
 begin
            ...


 
RWolf ©   (2012-05-17 21:49) [4]

фишка в масштабе.
этот график вылетает далеко за выбранные границы координатной сетки.


 
MBo ©   (2012-05-17 21:50) [5]

Правильно запиши формулу для X, поставь адекватные пределы по t, и разумное значение a, и всё получится


 
Ivan   (2012-05-18 09:51) [6]

Попробовал.через TChart/    снова в чем-то ошибка.не выводит график.Люди добрые, отзовитесь?

<procedure TForm1.Button1Click(Sender: TObject);

const th=0.01;
var
t,a,tmax:real;
begin

a:=strtofloat(edit1.text);
tmax:=strtofloat(edit2.text);

t:=0;
while t<tmax//максимальное время
do
begin

chart1.series[1].AddXY(a*sin(t),a*(cos(t)+ln(Sin(t/2)/Cos(t/2))),"", clBlue);

t:=t+th;
end;
end;

end.>


 
RWolf ©   (2012-05-18 09:59) [7]

логарифм от нуля чему равен?


 
Ivan   (2012-05-18 10:20) [8]

<Правильно запиши формулу для X, поставь адекватные пределы по t, и разумное значение a, и всё получится>

разве формула для x неправильная?

поставил t<pi,при t=1;2;(для остальных значений не удовлетворяет) работает .благодарю за подсказку.     А график не симметричен относительно оси ОY/(не дорисовывает в отрицательной полуплоскости).в чём тут причина?

И можете заодно прояснить ситуацию с TChArt/


 
Ivan   (2012-05-18 10:21) [9]

<логарифм от нуля чему равен?>
в коде один из вариантов который я написал переменной t.при значении 1 и т.д. тоже не канает


 
MBo ©   (2012-05-18 13:33) [10]

t= Pi/12...11*Pi/12
a = 5 (для данной шкалы)
x:=a*(ln(tan(t/2))+cos(t));


 
Ivan   (2012-05-18 17:00) [11]

<x:=a*(ln(tan(t/2))+cos(t))>  

дело втом что делфи выдает ошибку.что типа тангенса нет.

Поэтому я взял x:=a*ln(sin(t/2)/cos(t/2))+cos(t);
Почему график недорисовывает?


 
Германн ©   (2012-05-18 17:28) [12]


> дело втом что делфи выдает ошибку.что типа тангенса нет.

uses Math


 
MBo ©   (2012-05-18 21:01) [13]

дело не в тангенсе, а в неправильной формуле


 
Германн ©   (2012-05-19 02:12) [14]


> MBo ©   (18.05.12 21:01) [13]

Я всего лишь хотел сказать автору, что функция tan в Дельфи есть. Но в отличие от функций sin и cos она не зашита в "magic compile" модуль system.
А в математике я даже и не пытаюсь соревноваться  вами "дальневосточниками" :)


 
Ivan   (2012-05-19 11:21) [15]

<дело не в тангенсе, а в неправильной формуле>

это ваша формула x:=a*(ln(tan(t/2))+cos(t));
Она тоже на работает.какая же будет формула правильная тогда?


 
MBo ©   (2012-05-19 11:54) [16]

у меня работает


 
Ivan   (2012-05-19 15:42) [17]

график значит рисует?
(скинь текс чтоб посмотреть тогда)


 
Inovet ©   (2012-05-19 18:08) [18]

> [17] Ivan   (19.05.12 15:42)
> (скинь текс чтоб посмотреть тогда)

Вот и подошли к самому главному.


 
MBo ©   (2012-05-19 18:19) [19]

В [10] посту я описал все изменения, после которых график стал нормальным


 
Ivan   (2012-05-19 20:59) [20]

заработала машинка))))
формула правильная.  собака была зарыта в параметре и в пределах изменения этого же параметра t

получился график.

благодарю,<MBo> за вашу терпеливость.И вообще в помощи.

<Вот и подошли к самому главному.>    //разве нельзя с пониманием отнестись.

Я же не с пустым кодом пришёл на форум.



Страницы: 1 вся ветка

Текущий архив: 2016.04.10;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.005 c
1-1337273859
Ivan
2012-05-17 20:57
2016.04.10
ГРАФИК ТРАКТРИСЫ


15-1438291801
Юрий
2015-07-31 00:30
2016.04.10
С днем рождения ! 31 июля 2015 пятница


15-1438153716
Kerk
2015-07-29 10:08
2016.04.10
Делаю сегодня в полдень вебинар про статический анализ, приходите


15-1438327057
БарЛог
2015-07-31 10:17
2016.04.10
Всех с днём системного администратора!


2-1410257499
Смирнов А.И.
2014-09-09 14:11
2016.04.10
список определенных url из TWebBrowser