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

Вниз

Подскажите алгоритм по которому можно отрисовать...   Найти похожие ветки 

 
Knight ©   (2005-08-04 16:02) [0]

... перемещение точки, чтоб траектория была более менее похожа на полёт насекомого, но только не комара толкунца, а типа, бабочки, мотылька, светлячка... т.е. хаотичное, гладкое движение без резких углов и чтобы это можно было реализовать на JavaScript без километрового кодинга :)
Сам тут сделал, вроде и ничего, но чё-то их потряхивает, как с перепою... %)


 
TUser ©   (2005-08-04 16:09) [1]

Первое, что пришло на ум - выбирать точки случайным образом и рисовать через них сплайн или кривую Безье. А чтобы не потряхивало - выбирать точки подальше от текущего положения. Т.е., например, мы сейчас ТУТ, выбираем три точки, строим Безье, летим, когда прилетели в конец - выбираем две дополнительные точки (чтобы гладко было), чтроим, летим и т.д.


 
Verg ©   (2005-08-04 17:01) [2]


> Т.е., например, мы сейчас ТУТ, выбираем три точки, строим
> Безье, летим, когда прилетели в конец - выбираем две дополнительные
> точки (чтобы гладко было), чтроим, летим и т.д.


Это ж где так щедро наливают?


 
TUser ©   (2005-08-04 17:07) [3]

Я сходу предложил. А есть принципиальные возражения по которым такой способ не сработает?


 
Jeer ©   (2005-08-04 17:10) [4]

Knight ©   (04.08.05 16:02)

Динамический объект в поле тяготения описывается совсем небольшим числом диф.ур-ов.
Задаешь тягу по продольной оси + случайный процесс и случайное воздействие поперек корпуса.
Вуаля !


 
Mystic ©   (2005-08-04 17:22) [5]

Ты на картинке нарисуй траекторию и покажи... Потому что бабочки под рукой нету.


 
Ega23 ©   (2005-08-04 17:24) [6]

Была тут оса, летала по комнате. Задолбала своим хаотичным движением.
Пришлось цЫнично убить...


 
oldman ©   (2005-08-04 17:31) [7]


> Ega23 ©   (04.08.05 17:24) [6]
> Пришлось цЫнично убить...


Какой злой...
Нет бы сначала траекторию срисовать.


 
inic ©   (2005-08-04 17:49) [8]

Knight ©   (04.08.05 16:02)

может, например, так:

точка двигается по параболе, дуге круга или окружности,
причем коэфициенты параболы, угла и радиуса дуги, а также и последовательность этих трех типов движения рандомизируется.
Главное строить их так, чтобы их касательные в точке перехода лежали на одной прямой.

походу дела чушь написал, но что-то в этом есть


 
inic ©   (2005-08-04 17:50) [9]

inic ©   (04.08.05 17:49) [8]

> точка двигается по параболе, дуге круга или окружности,


Имелось в виду круга или эллипса


 
MeF Dei Corvi ©   (2005-08-05 00:02) [10]

интересно, траектория пьяного человека в чистом поле похожа на "полёт насекомого"?


 
DrPass ©   (2005-08-05 00:30) [11]


> ... перемещение точки, чтоб траектория была более менее
> похожа на полёт насекомого

Лучше всего с помощью Motion Capture. Т.е. ставишь камеры, помечаешь насекомое яркой фосфоренцирующей краской и снимаешь его полет. А потом оцифровываешь


 
iZEN ©   (2005-08-05 02:49) [12]

Попробовать рандомизировать dx, dy (и, возможно, dz) монотонно на интервале от -max до +max:

for j := 0 to MaxStep do for i := -max to max do begin
  X := X + Sign(i) * Random(Abs(i)) * Dx;
  Y := Y + Sign(i) * Random(Abs(i)) * Dy;
  RenderModel(X, Y);//Отрисовка траектории
end;//i
end;//j

где MaxStep = 100 - "длина" траектории
Dx, Dy = 1...3;
max = 3...5;
Sign(i) - функция "знака числа", возвращает -1, 0 или 1.
Должна получиться плавная кривая. Думаю, подойдёт.

Всё-таки сплайны здесь более уместны.


 
Knight ©   (2005-08-05 09:58) [13]

В общем пока сделал так. Через рендом генерируются координаты начальной (A) и конечной (B) точек, принадлежащие области полёта. Изображение помещается в А. Для следуюшего шага выбирается случайная точка в секторе, плюс минус 45 градусов от направления от А к В, круга радиусом max_step. И т.д. пока В не попадёт в в этот круг, после чего выбирается новая точка В.

Летят, вроде, довольно сносно...



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

Форум: "Потрепаться";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
14-1123326323
Джо
2005-08-06 15:05
2005.08.28
Осторожно, Акунин :)


14-1123451681
uw
2005-08-08 01:54
2005.08.28
Всем кто сейчас пьет пиво.


1-1123423392
Андрей Молчанов
2005-08-07 18:03
2005.08.28
DisposePIDL и окно отладчика


14-1123227092
Lexer
2005-08-05 11:31
2005.08.28
Домен (сеть компании) + рабочая группа (инет кафе)


1-1123516131
TStas
2005-08-08 19:48
2005.08.28
Как быстрее, передать подпрограмме указатель на объект или ..





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский