Автор Тема: Странное поведение в BGE  (Прочитано 35409 раз)

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #120 : 21 Апрель 2018, 18:23:44 »
... пусть у тебя уже есть траектория следа со всеми точками - какой алгоритм заполнение этой траектории элементами (следами)? ...
Вопрос не понял.
Цитировать
if(ds>sl): #если участок больше длины следа, то нужно рисовать промежуточные следы
   n = int(ds/sl)
Беру 37.96 см. и делю 24 см. и n получаю равным 1. Нет?
Какой в этом случае смысл цикла:
 for i=0 to range(n):
        vt = v0 + dss*i
Николай, я что-то совсем поплыл. След-то по-прежнему 24 см., а пройденный участок без малого 38 см.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #121 : 21 Апрель 2018, 19:19:09 »
>> Вопрос не понял.
>> Николай, я что-то совсем поплыл.

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

... и чтобы понять где скользкость алгоритма из предыдущего поста попробуй на бумаге отработать не один, а, допустим, 5 отрезков равной длины по 38 см ...
... хотя в последующем наверное следует внести изменения dss=ds/(n+1) и vt=v0+dss*(i+1), и в самом начале, когда v0 = None просто нарисовать след в v1, а в конце не рисовать ...

v0 = None

def 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

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #122 : 22 Апрель 2018, 12:06:27 »
>> Вопрос не понял.
>> Николай, я что-то совсем поплыл.

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

... и чтобы понять где скользкость алгоритма из предыдущего поста попробуй на бумаге отработать не один, а, допустим, 5 отрезков равной длины по 38 см ...
... хотя в последующем наверное следует внести изменения dss=ds/(n+1) и vt=v0+dss*(i+1), и в самом начале, когда v0 = None просто нарисовать след в v1, а в конце не рисовать ...

v0 = None

def 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
Погоди Николай, к коду давай вернёмся позже. Ты хоть определи что такое промежуточный след. След это плоскость определённого размера с определённой текстурой (рисунком), а промежуточный-то след это что за зверь такой?
Ещё вопрос: в строке
bge.logic.getCurrentScene().objects['ground'].collisionCallbacks.append(callback)
можно назначить столкновения только с одним объектом (в данном случае ground) или возможно назначить несколько объектов? Если возможно, то как назначить несколько объектов. Катится моё колесо по горке - тут объект столкновения ground. Скатилось оно с горки и попало в другую среду где будет уже другой объект столкновения ground2, ground3 ... ground22 - как быть? Ведь его надо ещё распознать. Замкнутый круг получается.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #123 : 22 Апрель 2018, 14:16:13 »
>> ... чтобы внести ясность и очевидность, попробуй текстом (простыми русскими фразами) изложить своё видение того как заполнить следами траекторию состоящую из нескольких фрагментов разной длины ...
... сможешь сделать? ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #124 : 22 Апрель 2018, 17:08:15 »
>> ... чтобы внести ясность и очевидность, попробуй текстом (простыми русскими фразами) изложить своё видение того как заполнить следами траекторию состоящую из нескольких фрагментов разной длины ...
... сможешь сделать? ...
Настаиваешь на своём предложении? Хорошо. Колесо, находясь над определённой точкой поверхности передаёт следу проекцию своих координат на неё. След располагается на поверхности согласно переданных ему координат, и выравнивается в соответствии с нормалью данной точки координат поверхности. След занимает точно ту поверхность, которую он имеет по проектным данным.
В следующем кадре, колесо, находясь над другой точкой поверхности передаёт следу проекцию своих координат на неё. Тот в свою очередь опять занимает поверхность. Однако, если расстояние между проекциями точек колеса больше длины следа, то образуются пробелы, коль меньше длины следа, происходит наложение следов. Ну, и т.д.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #125 : 22 Апрель 2018, 17:35:05 »
>> Однако, если расстояние между проекциями точек колеса больше длины следа
... то есть у тебя уже есть след в двух соседних точках и тогда найди точку между ними и добавь туда след ...
... если расстояние будет большим, то рассчитай количество нужных следов и добавь их ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #126 : 22 Апрель 2018, 20:05:34 »
>> Однако, если расстояние между проекциями точек колеса больше длины следа
... то есть у тебя уже есть след в двух соседних точках и тогда найди точку между ними и добавь туда след ...
... если расстояние будет большим, то рассчитай количество нужных следов и добавь их ...
Николай, да в том-то и дело, что между следами расстояние значительно меньше самого следа. При малой скорости - следы устанавливаются вплотную. С увеличением скорости, после определённых значений, появляются интервалы между следами равные десятым долям размера следа. С дальнейшим увеличением скорости увеличиваются и интервалы между следами. Смотри рисунок. У меня получались интервалы примерно до 0.9 размера следа. В то же время при низких скоростях, я сейчас рассмотрел, идёт наложение следов последующим на предыдущий. В работе BGE не видно, а вот на скрине, да с увеличением весьма заметно.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #127 : 22 Апрель 2018, 20:40:18 »
>> появляются интервалы между следами равные десятым долям размера следа.
... причина этого появления? только одна - расстояние между v1 и v0 больше следа, не так ли? ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #128 : 23 Апрель 2018, 07:11:21 »
Николай, да в том-то и дело, что между следами расстояние значительно меньше самого следа. При малой скорости - следы устанавливаются вплотную. С увеличением скорости, после определённых значений, появляются интервалы между следами равные десятым долям размера следа. С дальнейшим увеличением скорости увеличиваются и интервалы между следами. Смотри рисунок. У меня получались интервалы примерно до 0.9 размера следа. В то же время при низких скоростях, я сейчас рассмотрел, идёт наложение следов последующим на предыдущий. В работе BGE не видно, а вот на скрине, да с увеличением весьма заметно.
>> появляются интервалы между следами равные десятым долям размера следа.
... причина этого появления? только одна - расстояние между v1 и v0 больше следа, не так ли? ...
Толчём воду в ступе?
Я уже писал 22 Апреля 2018, 14:16:13
Цитировать
Однако, если расстояние между проекциями точек колеса больше длины следа, то образуются пробелы, коль меньше длины следа, происходит наложение следов.
К чему переспрашиваешь?

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #129 : 23 Апрель 2018, 11:10:26 »
Ещё вопрос: в строке
bge.logic.getCurrentScene().objects['ground'].collisionCallbacks.append(callback)
можно назначить столкновения только с одним объектом (в данном случае ground) или возможно назначить несколько объектов? Если возможно, то как назначить несколько объектов. Катится моё колесо по горке - тут объект столкновения ground. Скатилось оно с горки и попало в другую среду где будет уже другой объект столкновения ground2, ground3 ... ground22 - как быть? Ведь его надо ещё распознать. Замкнутый круг получается.
И, всё же Николай, есть какие-то соображения по этому вопросу?
Может кто из знатоков Blender знает? Поделитесь своими соображениями - буду очень признателен.

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #130 : 23 Апрель 2018, 12:31:37 »
Ещё один вопрос: в строке sl = sc.objectsInactive['Sled'] производится активация объекта находящегося на невидимом слое. В силу каких-то причин, уже активированный объект становится ненужным как активированный (ненужный в сцене).
Могу я его деактивировать, если да, то как?

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #131 : 23 Апрель 2018, 13:30:31 »
>> К чему переспрашиваешь?
... а почему ты не хочешь поделить это расстояние пополам и добавить туда след? ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #132 : 23 Апрель 2018, 16:05:22 »
>> К чему переспрашиваешь?
... а почему ты не хочешь поделить это расстояние пополам и добавить туда след? ...
Николай, я что-то не пойму твою мысль. Расположились два следа, заполнив часть поверхности. Между ними промежуток в 0.3 длины следа. Добавляем в этот промежуток, прямо в его центр что? След? След перекроет не только промежуток, но и предыдущий и последующий след на 0.35 их длины, нарушит рисунок.
Ну, погляди на рисунок «Без имени 4.jpg». В нижней его части, из-за малой скорости, идёт вполне заметное наложение последующих следов на предыдущие следы. В верхней части, с возрастанием скорости движения колеса, появляются промежутки. Я не понимаю почему, но при дальнейшем увеличении скорости следы в какой-то момент образуют опять сплошной след, а при дальнейшем увеличении скорости опять появляются промежутки.
Я добросовестно пытался заснять этот момент, но лучший момент так и не получился – очень большой фрагмент следа требуется.
Николай, ты извини, конечно, за вопрос: у тебя проблемы с русским языком? Ты можешь без ненужных многоточий последовательно развивать свою мысль. Ведь постоянно приходится в угадайку играть, пытаясь понять, куда ты клонишь и что пытаешься сказать? Я не претендую уж на высоко литературный язык, но обычным-то, разговорным языком можешь пояснять или запаса слов не хватает, потому к многоточиям прибегаешь? Ещё раз извини.
Я очень буду тебе благодарен, если ты найдёшь возможность пояснять разговорным языком.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #133 : 23 Апрель 2018, 17:43:23 »
>> но и предыдущий и последующий след на 0.35 их длины, нарушит рисунок.
... ненарушение рисунка - это ограничение, о нём не было заявлено ранее ...
... соблюсти это ограничение легко если имеется поступательное движение перед, но при поворотах будут разрывы - с ними что делать? ...

... можешь нарисовать  и прикрепить рисунок как должна быть заполнена траектория состоящая из 5-6 сегментов разной произвольной длины следами ...

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #134 : 23 Апрель 2018, 18:20:45 »
... можно ввести оценку остатка от кратного деления пройденного пути на длину следа ...

v0 = None
ss = 0

def test(v1):
   if(v0 is None):
      рисовать след в v1
   else:
      dv = v1-v0
      ds = dv.length
      dv = dv/ds
      ss += ds
      while(ss>sl):
         vt = v0 + dv*sl
         vt - это точка в которой нужно рисовать след
        ... далее код рисования следа ...
        ss-=sl
        v0 = vt

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 66
Автор: LEXA ANЭGROWND
blender.png
Скачано: 76
Автор: ipv2007
4.png
Скачано: 98
Автор: hiroyukiss
2.png
Скачано: 120
Автор: hiroyukiss

Скачано: 110
Автор: Dilifa12