Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.014 c
15-1148064518
Ten10
2006-05-19 22:48
2006.06.11
Численные методы


15-1147887846
Nous Mellon_
2006-05-17 21:44
2006.06.11
Если бы этого не было, это надо было бы придумать


3-1145076058
LILY
2006-04-15 08:40
2006.06.11
Поиск в БД по подстановочным полям


15-1148039046
Nikolga
2006-05-19 15:44
2006.06.11
Предложение о работе


15-1147757331
Ega23
2006-05-16 09:28
2006.06.11
С Днём Рождения! 16 мая





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский