Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.
 Re: Моделирование преобразования кривой...
Yu_K в сообщении #306628 писал(а):
У меня здесь нет возможности посмотреть. vvvv, можете показать картинки.


Вот каринка АКМ. Правда интересно посмотреть в динамике.
Изображение

 Re: Моделирование преобразования кривой...
AKM в сообщении #301328 писал(а):
Вычислительный смысл задачи может быть ещё и в том, чтобы хранить новые данные в виде приращений к данным предыдущего шага, и перевычислять не только координаты, но и приращения. Т.е. блок данных для каждой точки должен состоять из...
AKM,
а почему ты всё же работаешь с координатами, а не с приращениями, как сам же и предлагал?

 Re: Моделирование преобразования кривой...
Вот последняя картинка АКМ
Изображение

-- Пн апр 05, 2010 22:45:22 --

 Re: Моделирование преобразования кривой...
Аватара пользователя
Алексей К.,
a не помогли приращения. В Мапле делать надо. Или как-то по-умному. Вот автор темы что-то там ковыряет, наверное, расскажет однажды.

-- Пн апр 05, 2010 22:52:55 --

vvvv, и цитату тоже поправили бы в предпоследнем сообщении. Наверное, откушен закрывающий тэг.

 Re: Моделирование преобразования кривой...
Цитата:
Тупо провожу ориентированную окружность через соседние 3 точки, использую её кривизну и нормаль в средней точке. Нормаль будет кажется $$ \arg(z_2-z_1)+\arg(z_3-z_2)-\arg(z_3-z_1)+\frac\pi2 $$(т.е. касательная + 90).


А я кривизну считал по определению: угол между отрезками ломанной делил на длину двух отрезков ломанной.
Или записывал уравнение преобразованной кривой (первой).Теперь нужно организовать цикл или рекурсию.

 Re: Моделирование преобразования кривой...
Аватара пользователя
vvvv в сообщении #306681 писал(а):
А я кривизну считал по определению: угол между отрезками ломанной делил на длину двух отрезков ломанной.
Это не есть "по определению". Если Вы имеете в виду $k\stackrel{def}=\lim\limits_{\Delta s \to 0} \dfrac{\Delta\tau}{\Delta s}$, то там нет двух отрезков. И такую кривизну естественно приписать точке $z(s+\Delta s/2)$. Возьмём $\Delta s <0$, получим другую кривизну ("левую"). Из левой $k\left(s-\frac{|\Delta s|}2\right)$ и правой $k\left(s+\frac{|\Delta s|}2\right)$ делается нужная. Так что уточняйте свои определения. А при Digits:=50 и тысяче точек всё это, естественно, по барабану.

\color{red}\fbox{\color{black}А хаос с цитатами, замечу, у Вас только усиливается.} Кнопка Изображение к Вашим услугам.

 Re: Моделирование преобразования кривой...
А какую кнопку мне нужно нажать, чтобы разобраться какую и когда нажимать? :-)

-- Вт апр 06, 2010 00:34:17 --



-- Вт апр 06, 2010 00:34:21 --


 Re: Моделирование преобразования кривой...
Аватара пользователя
 !  Ваши шуточки неуместны. Здесь Вы чужой текст цитатой не оформили, как бы приписали себе.
Мне не жалко, но сообщение получается бестолковым, обсуждение непонятным.

 Re: Моделирование преобразования кривой...
Для кривой (трахоида), предложенной в моем предыдыщем посте получается такой мультик
http://www.youtube.com/watch?v=dLLvmWWaXS8.
Видно, что немного пропадает симметрия - из-за несимметрии аппроксимации первой производной и видна неустойчивость. Причем если взять центральные разности - то еще раньше развивается неустойчивость. Все должно по идее перейти в схлопывание двухлистной окружности (двух окружностей наложенных друг на друга).

 Re: Моделирование преобразования кривой...
Аватара пользователя
По просьбе нашего радиослушателя Yu_K передаём песню про гипотрохоиду.
Код: (hypotrochoid.ps) [ скачать ] [ спрятать ]
  1. %!PS 
  2. % 
  3. %   Curve z(t) = R1*exp(i*w1*t) + R2*exp(-i*w2*t), as described in  
  4. %      http://www.mathcurve.com/courbes2d/hypotrochoid/hypotrochoid.shtml (see lines 251-279) 
  5. % 
  6. % ----- This part of code is borrowed from PS-library, presented by "Алексей К./dxdy.ru" ----- 
  7. % ----- Errors, iterations and main program (at the end) are due to         AKM/dxdy.ru  -----  
  8.  
  9. /Red  {1  0 0 setrgbcolor} bind def 
  10. /Red2 {1  0 1 setrgbcolor} bind def 
  11. /Green{0  .6 0 setrgbcolor} bind def 
  12. /Blue {0  0 1 setrgbcolor} bind def 
  13. /Black{0  0 0 setrgbcolor} bind def 
  14.  
  15. /ED {exch def} bind def 
  16.  
  17. /XYadd {% x1 y1 x2 y2  --> x1+x2 y1+y2 
  18.   3 -1 roll add 3 1 roll add exch 
  19. } bind def 
  20.  
  21. /XYsub {% x1 y1 x2 y2  --> x1-x2 y1-y2 
  22.   3 -1 roll sub neg 3 1 roll sub exch 
  23. } bind def 
  24.  
  25. /Polar {%   r phi --> x=r*cos  y=r*sin 
  26.   2 copy cos mul 3 1 roll sin mul 
  27. } bind def  
  28.  
  29. /ToPolar {% x y --> r  phi 
  30.    exch 2 copy dup mul exch dup mul add sqrt 3 1 roll 
  31.    2 index 0. eq {pop pop 0.} {atan} ifelse 
  32. } bind def 
  33.  
  34.  
  35. /Rpoint {%  Abs.Radius   (curr.point)  
  36.     gsave setlinewidth currentpoint newpath 
  37.           [] 0 setdash 1 setlinecap moveto 0 0 rlineto stroke 
  38.     grestore 
  39. } bind def 
  40.  
  41.  
  42. /Pstack {% 
  43.   count [exch dup (items on stack:) 3 -1 roll % S0 S1 ... S_n-1 [N (txt) N 
  44.       dup 3 add exch                          % S0 S1 ... S_n-1 [ i=n+3 n 
  45.       {dup index dup [ eq {pop (mark)} if exch} repeat 
  46.       pop] == flush 
  47. } bind def 
  48.  
  49. /Pdict {%  dict 
  50.   count 0 eq {currentdict} {dup type /dicttype ne {currentdict} if}ifelse {[3 1 roll]==} forall 
  51. } bind def 
  52.  
  53. /Args {%  /Title: N %                         0 1 2 3 (...) [...]  /Test 3 Args 
  54.     [ 3 1 roll        % a1 ... aN [ /T N 
  55.       dup 2 add exch  % a1 ... aN [ /T N+2 N 
  56.       {dup index dup [ eq {pop (mark)} if exch} repeat pop % 2009! 
  57.     ] == flush 
  58. } bind def 
  59.  
  60. /mm {595. mul 210. div} bind def 
  61.  
  62. /Ishow  {%   (r123) Ishow  : Prints 2-nd and next characters as index 
  63.    dup 0 1 getinterval search {%           % (rest) (1st) () true 
  64.      pop show dup stringwidth pop .6 mul   % (rest) dx 
  65.      currentpoint 4 1 roll add 3 1 roll    % xn yn (rest) 
  66.      gsave 
  67.        0 currentfont /ScaleMatrix get 0 get -.15 mul rmoveto currentpoint translate  
  68.        0.6 dup scale  0 0 moveto show  
  69.      grestore moveto  
  70.     } if 
  71. } bind def 
  72.  
  73. /XYdraw {% draw array [x y x y ...]  or --mark-- x y x y ... 
  74.    dup type /arraytype eq  
  75.    {aload length} 
  76.    {counttomark dup 2 add -1 roll pop} ifelse   
  77.    2 idiv 1 sub 3 1 roll moveto {lineto} repeat 
  78. } bind def 
  79.  
  80. /AppStr  {% <str1> <str2> appstr <str3> % borrowed from Ghostscript 
  81.     exch dup length 2 index length add string 
  82.     dup dup 4 2 roll copy 
  83.     length 4 -1 roll putinterval 
  84. }bind def 
  85.  
  86. % -------------- Iteration for one time step (AKM): 
  87. /Pstep {% k tau   --> dz ang(norm) 
  88.   90 sub exch DT mul exch 
  89. } def 
  90.  
  91. /Revers {[ exch aload length -2 4 {2 roll} for]} bind def          % [ PN ... P2 P1 
  92.  
  93. /Tstep  {% [x1 y1 x2 y2  ... xN yN] 
  94. DS exch /DS 0 def /I 0 def /DT Coeff def 
  95. /Kmax 0 def 
  96.    [ exch aload length /NN ED 
  97.      NN -2 roll 4 copy NN 4 add 4 roll           % DS [P1 PN ... P2 P1 PN 
  98.  
  99.      NN 2 idiv {%                                 % x3 y3 x2 y2 x1 y1 
  100. %/P1P2P3 6 Args  
  101.         6 copy XYsub exch atan 3 1 roll           % x3 y3 x2 y2 x1 y1 mu2 x1 y1 
  102.         6 index 6 index XYsub exch atan           % x3 y3 x2 y2 x1 y1 mu2 mu1 
  103.         2 copy sub sin 5 1 roll add 4 1 roll      % x3 y3 x2 y2 mu1+mu2 sin(rho) x1 y1  
  104.         7 index 7 index 4 2 roll XYsub            % x3 y3 x2 y2 mu1+mu2 sin(rho) x3-x1 y3-y1  
  105.         ToPolar 3 1 roll div 2 mul                % x3 y3 x2 y2 mu1+mu2 angref k 
  106.         dup abs Kmax gt {dup abs /Kmax ED} if  
  107.         3 1 roll sub                              % x3 y3 x2 y2 k tau 
  108.         3 index 3 index counttomark 4 roll        % [k2 nu2 x2 y_2 .... x3 y3 x2 y2 
  109.        } repeat pop pop pop pop 
  110.  
  111.        Ratio 0 ne {/DT 1 Kmax div dup mul Ratio mul def} if   % optionally redefine step 
  112.        counttomark 4 idiv {%                      % k_i nu_i x_i y_i 
  113.        gsave newpath Black .2 setlinewidth  
  114.             2 copy moveto 4 2 roll Pstep          % x_i y_i ds nu  
  115. %                1 index abs dup DSdraw gt {Npt mul} if DS add /DS ED  
  116.                 1 index abs dup DS gt {/DS ED}{pop} ifelse 
  117.             Polar 2 copy rlineto stroke  
  118.        grestore 
  119.        XYadd counttomark 2 roll                  %  
  120. /I I 1 add def 
  121.      } repeat 
  122. ] exch DS  add /DS ED 
  123. } def 
  124.  
  125. /RejectPT {%  [ P1 P2 P3 ... PN]  ---> [P1 ... PM] 
  126.    [ exch aload length /NN ED  /RJ false def         % RJ: previuos pt rejected 
  127.      NN -2 roll 4 copy NN 4 add 4 roll                         % [P1 PN ... P2 P1 PN 
  128.      NN 2 idiv {%                                              % x3 y3 x2 y2 x1 y1 
  129.         6 copy 3 index 3 index XYsub dup mul exch dup mul add  
  130.                       5 1 roll XYsub dup mul exch dup mul add  % ... rj1 rj2 
  131.         2 copy 0 le exch 0 le or 3 1 roll 
  132.         Reject le exch Reject le and or                        % ... ifreject 
  133.         RJ {pop false} if dup /RJ ED  
  134.         {pop pop} {pop pop 2 copy counttomark 2 roll} ifelse 
  135.      } repeat pop pop pop pop 
  136.   ] dup length 2 idiv /Npt ED 
  137. } def 
  138.  
  139. /Estep  {% [x1 y1 x2 y2  ... xN yN] 
  140.    /L 0 def /DS 99999999 def /Kmax 0 def 
  141.    [ exch aload pop 2 copy counttomark 2 roll   % [P1 PN ... P2 P1 
  142.      counttomark 6 sub 2 idiv {%                % ... x3 y3 x2 y2 x1 y1 
  143.         4 copy XYsub dup mul exch dup mul add sqrt 7 1 roll % ... DL x3 y3 x2 y2 x1 y1 
  144.         6 copy XYsub exch atan 3 1 roll           % DL x3 y3 x2 y2 x1 y1 mu2 x1 y1 
  145.         6 index 6 index XYsub exch atan           % DL x3 y3 x2 y2 x1 y1 mu2 mu1 
  146.         2 copy sub sin 5 1 roll add 4 1 roll      % DL x3 y3 x2 y2 mu1+mu2 sin(rho) x1 y1  
  147.         7 index 7 index 4 2 roll XYsub            % DL x3 y3 x2 y2 mu1+mu2 sin(rho) x3-x1 y3-y1  
  148.         ToPolar 3 1 roll div 2 mul abs dup        % DL x3 y3 x2 y2 mu1+mu2 angref |k| |k| 
  149.         9 -1 roll mul 2 div                       % x3 y3 x2 y2 mu1+mu2 angref |k| sin_phi/2 
  150.         dup 1 2 copy sub 3 1 roll add mul abs sqrt atan                       %... phi/2           
  151.         .03490658504 mul exch div L add dup /L ED % x3 y3 x2 y2 mu1+mu2 angref L 
  152.         neg 3 1 roll sub                          % x3 y3 x2 y2 -L tau 
  153.         Polar 3 index 3 index XYadd               % x3 y3 x2 y2 x2new y2new 
  154.         gsave newpath .2 setlinewidth  
  155.              4 copy 4 2 roll moveto lineto stroke  
  156.         grestore 
  157.         counttomark 2 roll                        % [P2' P1' ... P3 P2 
  158.        } repeat pop pop pop pop 
  159. ] 
  160. } bind def 
  161.  
  162. /Counter {% 
  163.   Nsteps 6 string cvs ( / ) AppStr  N 6 string cvs AppStr 
  164.   Rmin 0 gt {(, Rmin = ) AppStr Rmin 16 string cvs AppStr} if  
  165.   Reject 0 gt {(, Npt = ) AppStr Npt 6 string cvs AppStr} if  
  166.   -275 310 moveto  
  167.   gsave 1 setgray -2 -4 rmoveto currentpoint 2 index stringwidth pop 30 add 28 rectfill grestore  
  168.   show 
  169. } def 
  170.  
  171. /MakePage {% 
  172. /Npage Npage 1 add def /Nsteps 0 def  
  173. save exch   
  174.    begin 
  175.      currentdict /Data0 known not {% 
  176.        w1 0 eq  {/w1 1 def} if 
  177.        /dt 360 Npt div def 
  178.        /dt2 dt 2. div def 
  179.        /Data0 [ 
  180.           0 dt 360 dt2 sub {dup w1 mul R1 exch Polar 3 -1 roll w2 mul neg R2 exch Polar XYadd} for  
  181.        ] def 
  182.      } {/w1 0 def /Npt Data0 length 2 idiv def} ifelse 
  183.      /DS 0 def 
  184.      Evolute  {/Coeff 0 def /Ratio 0 def /Pstep {90 sub 1. 3 -1 roll div exch} bind def} if 
  185.      Evolvent {/Coeff 0 def /Ratio 0 def /Tstep {Estep} def} if 
  186.      Reject 0 ge {Reject dup mul}{-1} ifelse /Reject ED 
  187.  
  188.      270 800 moveto (Page ) show Npage 3 string cvs show ( / ) show Npages show 20 770 moveto 
  189.         w1 0 ne {% 
  190.           gsave  /Symbol findfont 20 scalefont setfont 
  191.              (r1) Ishow ( = ) R1 15 string cvs AppStr (,  ) AppStr show 
  192.              (w1) Ishow ( = ) w1 15 string cvs AppStr (,  ) AppStr show    
  193.              (r2) Ishow ( = ) R2 15 string cvs AppStr (,  ) AppStr show 
  194.              (w2) Ishow ( = ) w2 15 string cvs AppStr (;  ) AppStr show currentpoint 
  195.           grestore moveto 
  196.         } if  
  197.         Ratio dup 0 lt exch 1. ge or {Red} if   
  198.         Ratio 0 ne {( Ratio=) show Ratio 15 string cvs show} if 
  199.         Ratio 0 eq Coeff 0 ne and {( Coeff=) show Coeff 15 string cvs show} if 
  200.         Evolute  {( Evolute.)  show} if 
  201.         Evolvent {( Evolvent.) show} if 
  202.      20 740 moveto Blue Title show  
  203.   
  204.      0 400 translate Black 
  205.            3 0 moveto 3 Rpoint 3 100 lineto 3 Rpoint stroke 
  206.            6 -5 moveto (0) show 4 95 moveto (100) show 
  207.      300 0 translate 
  208.           -10 0 moveto 10 0 lineto 0 -10 moveto 0 10 lineto stroke  
  209.  
  210.      /Rmin 0 def 
  211.      Evolvent Evolute or {1.2}{.6} ifelse setlinewidth 
  212.      Data0 XYdraw Evolvent not {closepath} if stroke Counter 
  213.      { Data0 Revers N 0 le {1}{N} ifelse {% 
  214.          Tstep  /Nsteps Nsteps 1 add def           % [Nsteps DS dup DSdraw gt] == 
  215.          Nsteps 1 eq {1 0 0 setrgbcolor} if 
  216.          DS DSdraw gt {% 
  217.             dup XYdraw Evolvent not {closepath} if stroke Counter 
  218.          /DS 0 def   currentrgbcolor 3 1 roll setrgbcolor 
  219.          } if 
  220.          Kmax Rexit mul 1 gt {/Rmin 1. Kmax div def exit} if 
  221.          Reject 0 ge {RejectPT} if   Npt 4 lt {exit} if 
  222.        } repeat  
  223.      } stopped % ------------------------------------------------------------------ 
  224.      {count {pop} repeat Red 0 0 moveto (Error occured) show}  
  225.      {dup XYdraw Evolvent not {closepath} if stroke 
  226.         EndPoints {Red2 aload length 2 idiv {moveto 4 Rpoint} repeat}{pop} ifelse 
  227.      } ifelse Counter 
  228.    end 
  229.    flush showpage 
  230. restore 
  231. } def 
  232. % 
  233. % ================================== MAIN PROGRAM ========================================= 
  234. % 
  235. /Npage 0 def /Npages 0 def 
  236. /Times-Roman findfont 20 scalefont setfont 
  237.  
  238. %        --------------------------------------- Set defaults: ---------------- 
  239. /R1  100 def  /w1 1 def  /R2 0 def  /w2 1 def 
  240. /Ratio 0.05 def  % shift = Rmin * Ratio   
  241. /Coeff 0 def     % shift = Coeff * cuvature 
  242. /Npt 120 def     % number of points on curve 
  243. /N 1000 def      % number of iterations 
  244. /DSdraw 20. def  % some distance between two drawn curves (somehow controls number of curves to draw) 
  245. /Rexit 0. def    % exit if Rmin < Rexit 
  246. /Reject -1 def   % if nonnegative reject 
  247. /Title () def  /Evolute   false def /Evolvent  false def  /EndPoints false def 
  248. % 
  249. %        ----------------- Fill array of dictionaries-pictures: ----------------- 
  250. [ 
  251. % 
  252. % To include a picture enter dictionary of /key value paires: 
  253. %   << /key1 value1 /key2 value2 ....   /keyN valueN >>   
  254. % 
  255. %  Curve z(t) = R1*exp(i*w1*t) + R2*exp(-i*w2*t) can be set by, e.g. 
  256. %           /R1 100 /w1 1  /R2 20 /w2 1  /Npt  120 
  257. % 
  258. %  or simply give a set of points like  
  259. %           /Data0 [ X1 Y1 X2 Y2 X3 Y3 ... Xn Yn ]    (X1,Y1) NOT equal to (Xn,Yn) ! 
  260. % 
  261. %  Set  /Ratio .5 (value<1) to control step: Step = curvature_i * const, const= Ratio*Rmin,  
  262. %                           where Rmin is minimal radius of curvature, updated for every loop 
  263. %  Or set /Ratio 0 /Coeff 10:                Step = curvature_i * Coeff, Coeff not updated.    
  264. % 
  265. %  Set /Title (some text)  % v skobkah, according to PS string format 
  266. %  Set /N integer_value    % for total number of iterations 
  267. %  Set /Rexit  Rmin        % exit when minimal radius of curvature < Rexit 
  268. %  Set /Reject MinDist     % to reject close ajacent points 
  269. % 
  270. %  Set /DSdraw SomeDist    % to control how often the curve will be drawn (0., 10.5, 100... ) 
  271. % 
  272. %  Set /Evolute  true      % just to draw N evolutes 
  273. %  Set /Evolvent true      % just to draw N evolvents 
  274. % 
  275. %  There are 21 << dictionaries >> in this example, producing 21 pages of output 
  276. %  Any  << dictionary >> can be removed (commented, popped) or edited.  New one can be inserted. 
  277. % 
  278. % --------------------------------------------------------------------------------- 
  279. % ---------------- Start list of pictures; edit below this line ------------------- 
  280. % --------------------------------------------------------------------------------- 
  281.  <<  /R1 150 /w1 1  /R2 100 /w2 -6  /N 300 /Npt 360 >>   
  282.  
  283.  <<         /Title (Circle, R = 200 = 70.6 mm) 
  284.      /R1 70.6 mm /R2 0 /w2 1  /N 13  /Npt 36 /Ratio .5 sqrt             % --- circle (k=0) 
  285.  >> 
  286.  
  287.  <<  /R1 200 /R2 0 /w2 1  /N 13  /Npt 36 /Ratio .0 /Coeff 1000 >>   % --- circle (k=0) 
  288.  
  289.  <<  /R1 200 /R2 70 /w2 1  /N 3000 /Npt 60 /Ratio 0.04 >>           % --- ellipse 
  290.  
  291.  <<   /Title ( --------------- Test for rejection of close points -------------) 
  292.    /R1 200 /R2 70 /w2 1  /N 3000 /Npt 90 /Ratio 0.05  /Reject 7 >>           % --- ellipse 
  293.  
  294.  
  295.  <<  /R1 50 /R2 200 /w2 2  /N 1000 /Npt 60 /Ratio 0.1 >>   
  296.  
  297.  <<   /R1 250   /R2 80 /w2 2  /N 3000 /Npt 60 /Ratio 0.3          /DSdraw 50 >>   
  298.  
  299.  <<  /R1 200 /R2 60 /w2 2 /N 500  /Npt 60 /Ratio 0. /Coeff 40 /DSdraw 50 >>   
  300.  
  301.  <<  /R1 133.333 /R2 150 /w2 2 /N 5555 /Npt 120  /Ratio .3 /Rexit .5 /DSdraw 40 >>   
  302.  
  303.  <<  /R1 110  /R2 150 /w2 3 /N 1000 /Npt 80 /Ratio .2 >>   
  304.  
  305.  <<  /R1 208 /R2 75 /w2 5  /N 2000 /Npt 120 /Ratio .1 >>   
  306.  
  307. <<  /N 15 /Ratio .5  
  308.   /Data0 [99 0   99 99   0 99  -99 99  -99 0   -99 -99   0 -99   99 -99  ] 
  309.   /Title (Sample point set.) 
  310. >>   
  311.  
  312.  
  313. <<             /Title (Lemniscate + Reject=2) 
  314.    /Reject 2 /Ratio 0.05   /N 2000   /DSdraw 20 
  315.    % Fill data points: 
  316.    /Npt Npt 2 div round 2 mul cvi def 
  317.    /dt 180 Npt 2 sub div def /dt2 dt 2. div def 
  318.  
  319.    /Data0 [%  Calculate  data x1 y1 x2 y2 ... for lemniscate  
  320.      0 0 
  321.     -45 dt2 add dt 45 {% 
  322.      dup 2 mul cos   % fi r^2 
  323.         sqrt exch Polar 280 mul exch 280 mul exch 
  324.     } for 
  325.     0 0 
  326.     -45 dt2 add dt 45 {% 
  327.        dup 2 mul cos   % fi r^2 
  328.        sqrt exch Polar 280 mul exch 280 mul neg exch 
  329.     } for  ] 
  330. >> 
  331.  
  332. <<   
  333.    /R1 208 /R2 125 /w2 4 /N 100 /Npt 180 /Ratio .7  /DSdraw 20 
  334.      /Title (Ratio=0.7 is too big... but "selfcorrection" occurs?) 
  335. >>   
  336.  
  337. <<      /Title ( R(t) = A + b*cos(wt), b < A. ) 
  338.     %  
  339.     /a 200 def /b 100 def /w 6 def  
  340.     /Npt 120 def % number of points on curve 
  341.     /dt 360 Npt div def /dt2 dt 2. div def  
  342.     /Data0 [ 0 dt 360 dt2 sub {dup w mul cos b mul a add exch Polar } for ] 
  343.     /N 6000   /DSdraw 30 
  344.     /Ratio .1  
  345. >> 
  346.  
  347. <<      /Title ( R(t) = a + B*cos(wt), B>a. "Old-style" picture (no step correction).) 
  348.     %  
  349.     /a 100 def /b 320 def /w 4 def  
  350.     /Npt 160 def % number of points on curve 
  351.     /dt 360 Npt div def /dt2 dt 2. div def  
  352.     /Data0 [ 0 dt 360 dt2 sub {dup w mul cos b mul a add exch Polar } for ] 
  353.     /N 7500  
  354.     /Ratio 0. /Coeff 2. /DSdraw 200 
  355. >> 
  356.  
  357. <<      /Title ( R(t) = a + B*cos(wt), B>a. The same with step correction.) 
  358.     %  
  359.     /a 100 def /b 320 def /w 4 def  
  360.     /Npt 160 def % number of points on curve 
  361.     /dt 360 Npt div def /dt2 dt 2. div def  
  362.     /Data0 [ 0 dt 360 dt2 sub {dup w mul cos b mul a add exch Polar } for ] 
  363.     /N 7500  
  364.     /Ratio 0.2 /Coeff 2. /DSdraw 20  
  365. >> 
  366.  
  367.  <<  /R1 40 /R2 50 /w2 3 /N 4 /Npt 80 /Evolute true /Title (Rose's sequential evolutes) >>   
  368.  
  369.  <<  /R1 50 /R2 20 /w2 1   /N 3 /Npt 120 /Evolute true /Title (Ellipse's sequential evolutes) >>     
  370.  
  371.  <<  /R1 30 /R2 40 /w2 3 /N 1 /Npt 120 /Evolvent true >>   
  372.  
  373.  <<  /R1 15 /R2 20 /w2 3 /N 5 /Npt 80 /Evolvent true  
  374.      /Title (Infinite sequence of evolvents of any curve tends to logarithmic spiral) 
  375.  >>   
  376. % --------------------------------------------------------------------------------- 
  377. % ----------- end of pictures list; do not edit below this line ------------------- 
  378. % --------------------------------------------------------------------------------- 
  379. ] dup length 3 string cvs /Npages ED 
  380. {MakePage} forall 
  381. % ----------- (but two lines below can be removed :) 
  382. /Times-Roman findfont 100 scalefont setfont  
  383. 250 400 moveto (Bce!) show 366 449 moveto (.)dup show -10 0 rmoveto show 
  384. % (eof) 
upd: Теперь уже альбом на 21 песню.
AKM в сообщении #308417 писал(а):
Описание как баловаться, удалять мои и вставлять свои картинки --- строки 250 и ниже.

Заметил, что при скачивании (в IE) получается какой-то zip-образный нечитабельный текст. Нормальный PS-текст можно выковырять через кнопку "Цитата".

 Re: Моделирование преобразования кривой...
Ув. АКМ, я, дейсвительно, не знаю как правильно оформить цитату и не нашел как это сделать в правилах форума, так что это не шуточки :-(

 Re: Моделирование преобразования кривой...
Аватара пользователя
Она правильно оформляется сама при цитировании:
[quоte="bla-bla-bla"] ... собственно цитата ... [/quоte]

Вы, редактируя, откусываете то открывающее, то закрывающее [/quоte]. А то и оба (как в последний раз). (Я обычно не оставлял пометки о редактироовании).

Если Вы делаете её вручную, то в окне ответа рядом с кнопками B, i, u есть кнопка Quote, позволяющая заключить выделенный текст в цитату (без наворотов ="bla-bla-bla").

В окне предпросмотра видно, что цитата оформлена неправильно, причины легко обнаруживаются и исправляются. Часто это всего лишь нечаянно удалённая квадратная скобка.

 Re: Моделирование преобразования кривой...
АКМ, спасибо, теперь ясно.Впредь так и буду делать :-)

-- Вт апр 06, 2010 20:55:25 --

 Re: Моделирование преобразования кривой...
Yu_K, а как ты мульты делал? Научи пожалуйста)))

 Re: Моделирование преобразования кривой...
Что касается продолжения темы, то мне кажется нужно в процессе перестройки кривой выбрасывать или объединять те точки, которые оказались слишком близко.

Анимация в Макаде - ответ для Вас взят отсюда
http://otvety.google.ru/otvety/thread?tid=28ed4531873bdaab.

Анимация представляет собой быстро сменяющие друг друга кадры, при этом изменения в каждый следующий кадр вносятся с помощью переменной FRAME. Например, проследим как «сжимается» парабола y=a*x^2 при изменении а от 1 до 20. Присваиваем: a:=FRAME+1 (по умолчанию FRAME=0). Задаем функцию: y(x):=a*x^2. Строим график заданной функции, идем в меню инструменты – анимация – запись, откроется окошко «запись анимации», там задаем значение переменной FRAME от 0 до 20.
http://i073.radikal.ru/0910/97/4411cf5e4312.jpg
Выделяем прямоугольником часть графика, что будет отображена в анимации и жмем на кнопку анимировать. Анимация готова.
http://i030.radikal.ru/0910/9a/6c49769f95d7.jpg

 [ Сообщений: 206 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.


Соглашение о конфиденциальности | Общие правила

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group