Конференция "Игры" » Движение по линии(дуге) [Delphi]
 
  • Klopa (28.02.10 20:46) [0]
    К примеру линия (X1,Y1) - (X2,Y2)
    требуется движение от начала до конца линии,
    оперируясь двумя кординатами.
    0,0 - 10,0  - достаточно дать 10 команд (+1 по каналу Х)
    0,0 - 10,10 линия под 45градусов -дать команды поочередно (+1 Х, +1 Y)
    а вот если 0,0 - 20,10 то тут уже без каких-то алгоритмов не обойтись(

    Смысл описание движения, вместо больших массивов движения,
    описываются только векторы, далее просчет будет в алгоритмах.
    Но каких?
    Еще бы дугу хотелось
  • KilkennyCat © (28.02.10 21:30) [1]
    x=f(y)
  • Klopa (28.02.10 21:54) [2]
    функция ведь не известна!
  • KilkennyCat © (01.03.10 06:48) [3]
    да ладно, все известно.
    например, для
    > 0,0 - 20,10

    х := 2у
  • MBo © (01.03.10 06:58) [4]
    алгоритмы Брезенхэма для отрезка и для окружности.
  • 12 © (01.03.10 14:56) [5]
    через 2 точки существует единственная прямая
    y= ax+c
    если точки известны, уравнение легко выводится

    а вот дуг там бесконечно
    первая попавшаяся - берем R = более половины расстояния мд точками и проводим окружности радиусом R с центром в каждой точке.
    Пересечение этих окружностей дадут 2 точки - кандидатов для центра дуги.
  • KilkennyCat © (05.03.10 03:13) [6]

    > 12 ©   (01.03.10 14:56) [5]

    Это если дугу считать как кусок окружности.
    Но на самом деле все проще. та же функция, как и для прямой, но коэффициент - тоже функция, значение которой изменяется до какого либо предела и возвращается к исходному значению. Установив точку возврата, получим место, где "закругляется" :) Таким образом, можно получить (как минимум) любую нормальную дугу (когда одна из координат изменяется только в одну сторону).
  • 12 © (05.03.10 16:26) [7]

    > KilkennyCat ©   (05.03.10 03:13) [6]

    это напоминает Как вскипятить чайник. Физик vs математик

    > на самом деле все проще. та же функция, как и для прямой,
    >  но коэффициент - тоже функция,

    проще, но не для физика-практика:)
  • tButton © (12.03.10 03:03) [8]
    re [2]
    в сабже упоминались векторы, поэтому функция скорее всего будет
    pos := pos + speed
    где pos и speed - векторы. Так что весь вопрос сводится к правильному определению вектора скорости.
    Кстати, не понятно о какой дуге идет речь. Если это дуга в вертикальной плоскости, то это движение под действием гравитации. А если в горизонтальной, то под действием наркотиков/центробежной силы.
  • Klopa (12.03.10 20:17) [9]
    Спасибо, кое-что проясняется...
    Дуга нарисованная средствами C
    anvas.Arc(

  • murder (24.03.10 20:13) [10]
    A.F.A.I.R.

    Линия - это кривая первого порядка y=a*x+b
    Дуга - это кривая второго порядка y=a*x*x+b*x+c
 
Конференция "Игры" » Движение по линии(дуге) [Delphi]
Есть новые Нет новых   [118626   +16][b:0][p:0.001]