... пусть у тебя уже есть траектория следа со всеми точками - какой алгоритм заполнение этой траектории элементами (следами)? ...
if(ds>sl): #если участок больше длины следа, то нужно рисовать промежуточные следы n = int(ds/sl)
>> Вопрос не понял.>> Николай, я что-то совсем поплыл. ... признаю, что в изложенный алгоритм имеет некоторые скользкие моменты ...... но это можно без труда поправить ...... чтобы внести ясность и очевидность, попробуй текстом (простыми русскими фразами) изложить своё видение того как заполнить следами траекторию состоящую из нескольких фрагментов разной длины ...... и чтобы понять где скользкость алгоритма из предыдущего поста попробуй на бумаге отработать не один, а, допустим, 5 отрезков равной длины по 38 см ...... хотя в последующем наверное следует внести изменения dss=ds/(n+1) и vt=v0+dss*(i+1), и в самом начале, когда v0 = None просто нарисовать след в v1, а в конце не рисовать ...v0 = Nonedef test(v1): if(v0 is None): рисовать след в v1 else: dv = v1-v0 ds = dv.length if(ds>sl): #если участок больше длины следа, то нужно рисовать промежуточные следы n = int(ds/sl) dss = ds/(n+1) for i=0 to range(n): vt = v0 + dss*(i+1) vt - это точка в которой нужно рисовать след ... далее код рисования следа ... v0 = v1
>> ... чтобы внести ясность и очевидность, попробуй текстом (простыми русскими фразами) изложить своё видение того как заполнить следами траекторию состоящую из нескольких фрагментов разной длины ...... сможешь сделать? ...
>> Однако, если расстояние между проекциями точек колеса больше длины следа... то есть у тебя уже есть след в двух соседних точках и тогда найди точку между ними и добавь туда след ...... если расстояние будет большим, то рассчитай количество нужных следов и добавь их ...
Николай, да в том-то и дело, что между следами расстояние значительно меньше самого следа. При малой скорости - следы устанавливаются вплотную. С увеличением скорости, после определённых значений, появляются интервалы между следами равные десятым долям размера следа. С дальнейшим увеличением скорости увеличиваются и интервалы между следами. Смотри рисунок. У меня получались интервалы примерно до 0.9 размера следа. В то же время при низких скоростях, я сейчас рассмотрел, идёт наложение следов последующим на предыдущий. В работе BGE не видно, а вот на скрине, да с увеличением весьма заметно.
>> появляются интервалы между следами равные десятым долям размера следа. ... причина этого появления? только одна - расстояние между v1 и v0 больше следа, не так ли? ...
Однако, если расстояние между проекциями точек колеса больше длины следа, то образуются пробелы, коль меньше длины следа, происходит наложение следов.
Ещё вопрос: в строке bge.logic.getCurrentScene().objects['ground'].collisionCallbacks.append(callback)можно назначить столкновения только с одним объектом (в данном случае ground) или возможно назначить несколько объектов? Если возможно, то как назначить несколько объектов. Катится моё колесо по горке - тут объект столкновения ground. Скатилось оно с горки и попало в другую среду где будет уже другой объект столкновения ground2, ground3 ... ground22 - как быть? Ведь его надо ещё распознать. Замкнутый круг получается.
>> К чему переспрашиваешь?... а почему ты не хочешь поделить это расстояние пополам и добавить туда след? ...