2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 17:16 
Аватара пользователя
Батороев в сообщении #714599 писал(а):
Исходная задача темы неопределима.
Как это понять?

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 17:26 
TOTAL в сообщении #714602 писал(а):
Батороев в сообщении #714599 писал(а):
Исходная задача темы неопределима.
Как это понять?

Наверное, правильнее говорить "условие задачи неопределенное"(путаюсь)? Т.е. в условии задачи не хватает одного какого-то параметра.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 17:28 
По-моему, исходная задача вполне корректна.
Пытаюсь взять себя в руки и не садиться писать программку.ps в рабочее время.
Достаточно добавить постоянные скорости или даже зависимости скоростей от пройденного пути.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 17:31 
Пока писал пост, уже ответили. Откуда мнение, что данных недостаточно? А как же моя полученная картинка? По моему моделированию (да и теоретическим представлениям) получается, что она единственна при любых стартовых положениях точек. Программка пишется за месколько минут.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 17:36 
Аватара пользователя
_Ivana в сообщении #714611 писал(а):
Программка пишется за месколько минут.

Эта задача не требует программы. "Четыре собаки стартуют с вершин квадрата и каждая бежит к той, что справа".
Время пускаем наоборот и две собаки одеваем в комбинезон-невидимку :wink:

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 17:52 
_Ivana
Вы в любом случае каким-либо образом должны были сделать привязку к внешней системе координат. Как это у вас получилось (или получится - для Алексей К.), это было сугубо Вашей инициативой - в условии этого нет.
Например, Вы могли оттолкнуться от того, что в начальный момент времени вращение прямой происходит относительно точки, скорость которой направлена вдоль прямой. Тогда Вы получили одну картину. Если же например, за центр вращения принять точку, удаленную в бесконечности, то картина будет иная.

-- 23 апр 2013 22:00 --

nikvic
То, что это "задача преследования" и у меня не вызывает никакого сомнения, но ТС интересовался, как привязаться к внешней системе:
Alvarg в сообщении #713238 писал(а):
Ага, спираль получал, но как получить движение этой точки которую мы фиксируем во внешней системе координат?

Мой ответ: при заданных условиях - никак.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 18:18 
Аватара пользователя
Батороев в сообщении #714625 писал(а):
_Ivana
Вы в любом случае каким-либо образом должны были сделать привязку к внешней системе координат.
Почему должны? Должны, чтобы что?

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 18:38 
TOTAL в сообщении #714639 писал(а):
Должны, чтобы что?

Чтобы выполнить картинку, которую получил(а) _Ivana.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 18:43 
Аватара пользователя
Батороев в сообщении #714654 писал(а):
TOTAL в сообщении #714639 писал(а):
Должны, чтобы что?
Чтобы выполнить картинку, которую получил(а) _Ivana.

Захотел сделать картинку - сделал картинку. Где проболема?

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 18:48 
TOTAL в сообщении #714658 писал(а):
Захотел сделать картинку - сделал картинку. Где проболема?

Батороев в сообщении #714625 писал(а):

Например, Вы могли оттолкнуться от того, что в начальный момент времени вращение прямой происходит относительно точки, скорость которой направлена вдоль прямой. Тогда Вы получили одну картину. Если же например, за центр вращения принять точку, удаленную в бесконечности, то картина будет иная.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 19:20 
nikvic, если так рассуждать - никакая задача не требует программы, все можно посчитать в уме или на бумажке :-) Но с программой быстрее, проще и нагляднее, плюс я заодно попробовал с разными другими вариантами расстановки, направлений движения и количества собак у меня черепахи :-). И я уже оценил ваше красивое предложение добавить ещё пару черепах и свести задачу к центрально симметричной.
Батороев, заданных начальных условий вполне достаточно, чтобы однозначно получить траектории движения. Разумеется, аналитически они будут описываться по разному в зависимости от выбора нашей системы координат - но это утверждение справедливо для любых кривых вообще.

ЗЫ
Батороев в сообщении #714625 писал(а):
Вы в любом случае каким-либо образом должны были сделать привязку к внешней системе координат. Как это у вас получилось (или получится - для Алексей К.), это было сугубо Вашей инициативой - в условии этого нет.
Например, Вы могли оттолкнуться от того, что в начальный момент времени вращение прямой происходит относительно точки, скорость которой направлена вдоль прямой. Тогда Вы получили одну картину. Если же например, за центр вращения принять точку, удаленную в бесконечности, то картина будет иная.
Я никого ни за что не брал - это не требуется. Достаточно просто формализовать движение каждой точки в зависимости от текущего положения другой.

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 19:21 
Батороев,

я не вращал никаких прямых: такого действительно не было в условии. Двигал точечки потихонечку с заданными скоростями в заданном (каждый раз вычисляемом) направлении. В примере ниже --- скорости разные, и спиральки другой формы.
Можете в коде в красной строчке поменять скорости.

код: (2bodies.ps) [ скачать ] [ спрятать ]
  1. %!PS 
  2. /L 100 def 
  3. /v1 20 def /v2 4 def 
  4. /Nmax 200 def 
  5.  
  6. /dt 1 def %1 v1 v2 2 copy lt {exch} if pop div 10 div def 
  7. /V1s {pop v1} def % code function V1(s)  
  8. /V2s {pop v2} def 
  9. % ---------------------------------- Edit above this line ------------------------------------- 
  10.  
  11. 450 400 translate  
  12. /I 0 def 
  13.  
  14. /XYadd {% x1 y1 x2 y2 --> x1+x2 y1+y2 
  15. 3 -1 roll add 3 1 roll add exch 
  16. } bind def 
  17.  
  18. /XYsub {% x1 y1 x2 y2 --> x1-x2 y1-y2 
  19. 3 -1 roll sub neg 3 1 roll sub exch 
  20. } bind def 
  21.  
  22. /XYdraw {% draw array [x y x y ...] or --mark-- x y x y ... 
  23. dup type /arraytype eq  
  24. {aload length} 
  25. {counttomark dup 2 add -1 roll pop} ifelse  
  26. 2 idiv 1 sub 3 1 roll moveto {lineto} repeat 
  27. } bind def 
  28.  
  29. /Step {% [path1 [path2 s1 s2 x2 y2 x1 y1 
  30.  
  31. I 20 mod 0 eq pop true {% 
  32. gsave .2 setlinewidth 4 copy moveto lineto stroke 
  33. 4 setlinewidth 1 setlinecap 4 copy 
  34. 0 1 0 setrgbcolor moveto 0 0 rlineto stroke 
  35. 0 0 1 setrgbcolor moveto 0 0 rlineto stroke 
  36. grestore 
  37. } if 
  38. /I I 1 add def 
  39.  
  40. 4 copy XYsub 2 copy dup mul exch dup mul add sqrt % s1 s2 x2 y2 x1 y1 dx dy D 
  41. 3 -1 roll 1 index div 3 1 roll div 2 copy 6 2 roll % s1 s2 x2 y2 ux uy x1 y1 ux uy 
  42. exch neg 
  43. 10 -1 roll dup V1s dt mul dup dup 5 2 roll add % s2 x2 y2 ux uy x1 y1 ux ds1 ds1 uy s1new  
  44. 12 1 roll mul 3 1 roll mul exch XYadd % s1' s2 x2 y2 ux uy x1' y1' 
  45. 2 copy counttomark 1 add 2 roll 6 2 roll % s1' s2 x1' y1' x2 y2 ux uy 
  46. 7 -1 roll dup V2s dt mul dup dup 5 2 roll add % s1' x1' y1' x2 y2 ux ds2 ds2 uy s2' 
  47. 9 1 roll mul 3 1 roll mul exch XYadd % s1' s2' x1' y1' x2' y2' 
  48. 2 copy 8 2 roll 4 2 roll 
  49. } def 
  50.  
  51. [ [ 0 0 L -2 div 0 2 copy counttomark 2 roll L 2 div 0 2 copy counttomark 1 add 2 roll 
  52. gsave 1 0 0 setrgbcolor 1 setlinewidth 4 copy 3 0 360 arc stroke 3 0 360 arc stroke grestore 
  53.  
  54. Nmax {Step} repeat pop pop pop pop pop pop 
  55. ] 0 0 1 setrgbcolor XYdraw stroke 
  56. ] 0 1 0 setrgbcolor XYdraw stroke 
  57. showpage 


-- 23 апр 2013, 20:32:19 --

(GSview, под Линуксом --- gv)

(code)

Очень не понравилось, как код смотрится и даунлоадится с тэгом syntax. Так лучше:
Код:
%!PS
/L 200 def
/v1 20 def /v2 4 def
/Nmax 200 def

/dt 1 def %1 v1 v2 2 copy lt {exch} if pop div 10 div def
/V1s {pop v1} def          %{5 div sin 1 add v1 mul} def                  % code function V1(s) 
/V2s {pop v2} def          %{5 div cos 1 add v2 mul} def

%  ---------------------------------- Edit above this line -------------------------------------

450 400 translate
/I 0 def

/XYadd {% x1 y1 x2 y2  --> x1+x2 y1+y2
  3 -1 roll add 3 1 roll add exch
} bind def

/XYsub {% x1 y1 x2 y2  --> x1-x2 y1-y2
  3 -1 roll sub neg 3 1 roll sub exch
} bind def

/XYdraw {% draw array [x y x y ...]  or --mark-- x y x y ...
   dup type /arraytype eq
   {aload length}
   {counttomark dup 2 add -1 roll pop} ifelse 
   2 idiv 1 sub 3 1 roll moveto {lineto} repeat
} bind def

/Step {%  [path1  [path2  s1 s2 x2 y2 x1 y1

   I 20 mod 0 eq pop true {%
      gsave .2 setlinewidth 4 copy moveto lineto stroke
             4 setlinewidth 1 setlinecap 4 copy
             0 1 0 setrgbcolor moveto 0 0 rlineto stroke
             0 0 1 setrgbcolor moveto 0 0 rlineto stroke
      grestore
   } if
   /I I 1 add def

   4 copy XYsub 2 copy dup mul exch dup mul add sqrt       % s1 s2 x2 y2 x1 y1 dx dy D
   3 -1 roll 1 index div 3 1 roll div 2 copy 6 2 roll      % s1 s2 x2 y2 ux uy x1 y1 ux uy
   exch neg
   10 -1 roll dup V1s dt mul dup dup 5 2 roll add          %    s2 x2 y2 ux uy x1 y1 ux ds1 ds1 uy s1new 
   12  1 roll mul 3 1 roll mul exch XYadd                  % s1' s2 x2 y2 ux uy x1' y1'
   2 copy counttomark 1 add 2 roll 6 2 roll                % s1' s2 x1' y1' x2 y2 ux uy
   7 -1 roll dup V2s dt mul dup dup 5 2 roll add           % s1' x1' y1' x2 y2 ux ds2 ds2 uy s2'
   9 1 roll mul 3 1 roll mul exch XYadd                    % s1' s2' x1' y1' x2' y2'
   2 copy 8 2 roll 4 2 roll
} def

[ [ 0 0 L -2 div 0 2 copy counttomark 2 roll L 2 div 0 2 copy counttomark 1 add 2 roll
gsave 1 0 0 setrgbcolor 1 setlinewidth 4 copy 3 0 360 arc stroke  3 0 360 arc stroke grestore

Nmax {Step} repeat

pop pop pop pop pop pop
] 0 0 1 setrgbcolor XYdraw stroke
] 0 1 0 setrgbcolor XYdraw stroke

showpage

 
 
 
 Re: Траектория движения двух точек
Сообщение23.04.2013, 19:39 
Господа, ПРОШУ ИЗВИНИТЬ ЗА НАВЕДЕННУЮ СМУТУ!!! Сейчас сам порисовал картинки и убедился, что вы правы!
Коль скоро, одна из точек не имеет нормальной составляющей скорости к прямой, следовательно, вращение прямой в любой момент времени происходит вокруг этой точки.

Сегодня с приятелем малехо посидели в кафе. Впредь обещаю задачи с пивом не мешать! :facepalm:

 
 
 [ Сообщений: 28 ]  На страницу Пред.  1, 2


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