Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Линейное движение   Найти похожие ветки 

 
brother ©   (2006-05-28 08:53) [0]

Что-то я никак не догоню...
Люди, помогите с проблемкой:

Есть произвольно построенная линия (LineTo...)
Как просчитать координаты всех точек этой линии?


 
RzCoDer ©   (2006-05-28 09:17) [1]

А ты можешь просчитать координаты ВСЕХ ТОЧЕК на линии? Оо


 
brother ©   (2006-05-28 09:32) [2]

Я имел ввиду координаты пикселей линии


 
Virgo_Style ©   (2006-05-28 09:39) [3]

y(x) = kx + b;
для вертикальной несколько иначе, понятно.


 
brother ©   (2006-05-28 15:34) [4]

Спасибо но не понятно.
Если можно по подробней...
Может у кого есть алгаритмы реализации canvas.LineTo() ?


 
Zeqfreed ©   (2006-05-28 15:36) [5]

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


 
Zeqfreed ©   (2006-05-28 15:37) [6]

Вот и ссылка: http://en.wikipedia.org/wiki/Bresenham"s_line_algorithm


 
brother ©   (2006-05-28 15:57) [7]

Не хило!  :)

Может что по проще есть?

В общем надо реализовать линейное движение спрайта с разной скоростью.
И как я понимаю надо просчитывать координаты...


 
Virgo_Style ©   (2006-05-28 16:05) [8]

еще проще?!

Inc(X, XStep);
Inc(Y, YStep);


 
brother ©   (2006-05-28 18:35) [9]

а как это привязать к перемещению между 2 точками?
те stepx и stepy зависимые, но вот как?


 
Rial ©   (2006-05-28 19:23) [10]

Дано:
A(X1,Y1);
B(X2,Y2);
Speed;

Решение:

XStep=(X2-X1)/Speed;
YStep=(Y2-Y1)/Speed;

Все величины :Extended или :Double;

Округлять надо только при выводе на экран (насколько я понял, используется канва?).

...
X:=X1;
Y:=Y1;
...
X:=X+XStep;
Y:=Y+YStep;
...
WriteMyObject(Round(X),Round(Y));


 
brother ©   (2006-05-28 20:15) [11]

Огромное спасибо Rial.
Ндя, что-то совсем с ума схожу... вроде не глупый :)



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
2-1148385586
skandri
2006-05-23 15:59
2006.06.11
Вырезание части bmp


15-1147857726
Cashmare
2006-05-17 13:22
2006.06.11
Учиться, учиться и учиться!


2-1148292355
deltav1
2006-05-22 14:05
2006.06.11
ModalResult


2-1148379837
VitV
2006-05-23 14:23
2006.06.11
DBDatetimeEditEh.text:=datetostr(now);-проблема.


2-1148635212
Ega23
2006-05-26 13:20
2006.06.11
Разовый экспорт данных в Excel