Задача на хаотичное раскидывание точек в пространстве

Discussion in 'WASM.HEAP' started by _DEN_, May 16, 2010.

  1. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    Тогда только метод 1 с добавлением генератов для копонент скорости/ускорения и получением координат как x=x0+Vx*t+ax*x*x/2 и т.п. Избавиться от генерации лишних точек не получится поскольку они для одного t лишние для другого нет, так что только фильтровать их на выходе.
     
  2. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    т.е. x=x0+Vx*t+ax*t*t/2
     
  3. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Y_Mur

    Ну вот метод 1 не подходит как раз потому что одно из условий задачи - нельзя перебирать все точки (их слишком много).
     
  4. UbIvItS

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    _DEN_
    вообще-то со словцом "бесконечность" шутить не надо:) на практике ты сможешь осилить ток ограниченное кол-во точек, стало быть пользуй компромисс , введя время жизни точки.. хотя можно сделать просто ограничитель по кол-ву созданных точек и пузсщай себе двигаются.
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    можно попробовать взять простые числа, для заданного подпространства использовать решето Эратосфена
     
  6. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    Не случайно, но думаю пойдет
     
  7. Y_Mur

    Y_Mur Active Member

    Blog Posts:
    0
    Joined:
    Sep 6, 2006
    Messages:
    2,494
    _DEN_

    Тогда опять два варианта - первый -закруглить подпространство т.е. сделать так чтобы точка вылетев за пределы области тут же влетела в неё с противоположной стороны - это конечно псевдорешение, но для "имитации хаоса" сойдёт :)

    второй - ввести два подпространства - одно побольше и с отражающими стенками, т.е. точки от них отскакивают по законам отражения, а уже внутрь его помещать твое искомое подпространство в которое точки свободно влетают и вылетают.
     
  8. Black_mirror

    Black_mirror Active Member

    Blog Posts:
    0
    Joined:
    Oct 14, 2002
    Messages:
    1,035
    _DEN_
    Самое простое это действительно закольцевать пространство как предлагает Y_Mur. Если считать что время и пространство повторяются с периодом p, то уравнение движения объектов можно будет записать как v*t=x mod p. Для t взаимопростого с p можно найти обратное и выражение для скорости примет вид v=x*t^-1. То есть здесь получается, что в каждый момент, кроме кратных p, через каждую точку пространства пролетает один объект из объектов со скоростью от 0 до p-1. Можно использовать эту скорость в качестве номера объекта. Правда есть моменты времени когда все объекты собираются вместе, но можно побить видимую область на достаточно крупные кубики(p нужно брать различные для всех осей, несколько больше количества кубиков вдоль оси) и приписать каждой точке своё смещение в кубике, ну а кроме того наложить друг на друга несколько таких сеток(со сдвигом и поворотом), чтобы дефекты сбора точек в одном месте были не так заметны. Фактически получится фиксированное количество точек постоянно пролетающих через подпространство, но из-за разных периодов картина будет повторяться очень не скоро.