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

Тема в разделе "WASM.HEAP", создана пользователем _DEN_, 16 май 2010.

  1. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Тогда только метод 1 с добавлением генератов для копонент скорости/ускорения и получением координат как x=x0+Vx*t+ax*x*x/2 и т.п. Избавиться от генерации лишних точек не получится поскольку они для одного t лишние для другого нет, так что только фильтровать их на выходе.
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    т.е. x=x0+Vx*t+ax*t*t/2
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Y_Mur

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

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    _DEN_
    вообще-то со словцом "бесконечность" шутить не надо:) на практике ты сможешь осилить ток ограниченное кол-во точек, стало быть пользуй компромисс , введя время жизни точки.. хотя можно сделать просто ограничитель по кол-ву созданных точек и пузсщай себе двигаются.
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    можно попробовать взять простые числа, для заданного подпространства использовать решето Эратосфена
     
  6. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Не случайно, но думаю пойдет
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    _DEN_

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

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

    Black_mirror Active Member

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