Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2016.04.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.002 c
2-1410864109
Rakim
2014-09-16 14:41
2016.04.10
Steam


15-1438586953
Pavelnk
2015-08-03 10:29
2016.04.10
Aero для Win10


2-1410889995
Alex_C
2014-09-16 21:53
2016.04.10
Читать TRegistry под Win7 без прав админа


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


6-1279699331
dm37
2010-07-21 12:02
2016.04.10
передача Recordset через tcp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский