• Регистрация
Адриано
Адриано 0.00
н/д

Удлиняющийся вектор

26.09.2019

Помогите пожалуйста! Для Вас это наверно элементарно :) Как нарисовать удлиняющийся вектор? Начало вектора находится в начале координат, а конец перемещается, например, вдоль одной из осей, т.е. начальная длина вектора 0, а потом она растет. Как это заанимировать?

Теги

    26.09.2019

    Ответы

    • alex2021
      alex20210.00
      30.09.2019 13:37

       for n=1:10

          quiver(0,0,n,n)

          axis([0 10 0 10])   

          pause(1)

      end

      • Адриано
        Адриано0.00
        30.09.2019 13:42

        Спасибо большое! Прямо стыдно, что это так просто XD.

        • kurguz
          kurguz+270.00
          30.09.2019 16:59

          Суть движения вектора - в изменении его координат, т.е. переменных XData,  YData, VData и UData, из которых он состоит. Вот как можно явно изменять эти координаты:

          q = quiver(0,0,1,1,'LineWidth',2);
          axis([0 10 0 10]);grid on; % настраиваем оси и сетку
          q.AutoScaleFactor = 1;     % правильно задаем масштабирование
          
          for n = 1:0.1:10
              q.UData = n;
              q.VData = 10-n;
              q.XData = (10-n)/2;
              q.YData = (10-n)/2;
              pause(0.01)
          end
        • Адриано
          Адриано0.00
          30.09.2019 18:44

          Одна микропроблемка: по мере увеличения вектор увеличивается в размере (его стрелочка), а нужно просто удлиняющийся вектор. Это решаемо?? Спасибо

          • Alexey_K
            Alexey_K+12.00
            1.10.2019 05:43
            q = quiver(0,0,1,1,'LineWidth',2,'MaxHeadsize',0.1);

            0.1 размер стрелки, попробуете подобрать самостоятельно, другие свойства в Help (Quiver Series Properties)

          • Адриано
            Адриано0.00
            21.10.2019 09:04

            Спасибо за помощь. Но какого черта, простите, конец вот этого вектора

            quiver(0,0,16,0,'LineWidth',2,'MaxHeadsize',0.1);

            не стоит на координате 16? Он чуть коротче.

            • kurguz
              kurguz+270.00
              24.10.2019 14:53

              Вам нужно правильно задать масштабирование:

              quiver(0,0,16,0,'LineWidth',2,'MaxHeadsize',0.1, 'AutoscaleFactor',1);
            • Адриано
              Адриано0.00
              25.10.2019 07:43

              Вот спасибо, умнички!!!