На базарной площади довольно часто можно слышать высказывания об
Обероне. Мне кажется, что на базарной площади пора появиться ветке об
этой системе и языке, что-то вроде "Мысли об Обероне". Что это такое, перспективы
этой системы, что
полезного можно извлечь из него для программирования на Дельфи
(например) и др.
Ответ на
»сообщение 2324« (Как слышно? Прием!)
___________________________
Вы извините, уважаемый коллега, но я не вижу в ваших постингах предмета об чём иметь поговорить...
Вы оперируете понятиями "двигаем" и "угол", как первичными, а они, в нашей задаче, при нашем подходе решения, сами вторичны - функции от равнодействующих всех сил на узлы. Вы постоянно будете играться с различными коэффициентами и величинами диапазонов допусков изменений различных показателей при вашем способе решения, а у нас с Сергеем РАБОТАЕТ ПРИНЦИП. Количество параметров для нашего случая минимально, принцип решения прозрачен и универсален, он практически без "условных ветвлений"...
Вообще-то надо добавить угловые амортизаторы связей в узлах.
Иначе ветки скомканными остаются.
Например, максимизацией расстояний между соседями узла,
А то угол долго считать и можно попасть на деление на ноль при вычислении
тангенса угла. Или городить условия, что снижает скорость.
begin
Для всех узлов К раз в цикле:
begin
Для всех последовательно соседей узла в цикле:
begin
Угол2=Угол+(0.5-random)*dУгол
R=расстояние между узлами
Если R(Угол2)>R(Угол) то принимаем Угол2.
end;
end;
end;
Правда, надо информацию о соседях хранить для каждого узла.
Короче - метод Монте-Карло.
Забавно смотреть, как деревья распускаются после засухи.
>>>Не будем - самим пригодятся - просто сразу снимем вместе с колёсами... :о)
Я, вообще-то, на танке. Цену на базаре хорошо переспрашивать (С) МЖ.
>>>Это уже "свистульки с колокольчиками"...
Дело в том, что я эту задачу решал. И свистульки реально помогают. Наладка теплосетей.
Дана теплосеть в виде таблицы. Excel обычно. Начальный узел, конечный, длина и пр.
Участки могут быть зигзагами. В смысле длина не есть расстояние между узлами.
В длинах могут быть ошибки. Удобнее приписки по ремонтам делать:). Схемы нет.
Надо принципиальную схему поиметь. То есть критерий не Ваша минимальная длина,
а расстояние поближе к Lopt=0.7 от табличного. Число узлов 50-1000.
Задача принципиально не отличается от Вашей. У Вас, я понял, кабеля.
Так вот, "свистульки" не позволяют пропасть визуально узлам (наложение
узлов друг на друга) и трассам (наложение узлов на трассы). Так что это функционал.
>>>Может лучше над моделью изначально подумать
begin
Выкидываем узлы на плоскость или берем из файла (сохранять - читать можно).
Проходимся по всем участкам N раз в цикле:
begin
Если L<Lopt, то увеличиваем на dL*random, раздвигая оба узла, и наоборот.
end;
end;
Оба - чтобы за край экрана не убегало, хотя, наверно, и по одному можно.
Графически контролируем процесс итераций. (Опциально, а то графика тормозит).
Кстати, процесс похож на пружинки при пошаговом контроле. Random для антициклина.
Графика (Ваши глазки) вместо критерия останова. Диалоговый режим с параметрами
dL, N, файл координат.
>>> Расправлять нужно было ручками.
>>>"Вот-вот-вот!..."(с)МЖ
Так вот такие конвертики и расправляли ручками. Это становилось исходным положением.
А потом опять на автомате.
А потом "после сборки обработать напильником". Извините, ручками. Можно было таскать
группу узлов.
Кстати, насчет "свистулек". По окончании расчета программа приятным женским голосом
сообщает, что расчет закончен, не желаете ли оценить результат.
Приятная фича для заказчика. Для дам - мужской голос.
Хелп голосовой опционально. Ой, я кажется рекламирую. Не снимайте траки :(
>>>Так вот иногда паутинки приходили в равновесие в сложенном виде.
>>> Это как???!!! :о)
Это когда Теплый стан наезжает на Мытищи и стабилизируется. (Схема магистралей Москвы.)
А куда на форуме (сайте) картинки можно выкладывать (Upload есть)?
Или более академически.
Есть граф - квадрат. Добавляем еще узел в центр. Связываем с верхними двумя.
Получается конвертик. Это "сложенный" домик, который бы был, если узел добавили сверху.
И еще в JBuilder demo была кнопка рандомизации. Выглядело как встряхивание узлов.
Иногда помогало избавиться от мелких складываний.
>>>Потенциал Морзе есть, Ван-дер-Ваальс или 1/х^4-1х^2.
Я это для товарищей с потенциалами между узлами попарно.
Для мягкости взаимодействия на больших расстояниях. Иначе закорёжит.
Интересно, а каков Ваш алгоритм?
Ответ на
»сообщение 2321« (Как слышно? Прием!)
___________________________
Шины колоть не будете?
Не будем - самим пригодятся - просто сразу снимем вместе с колёсами... :о)
Если узлы сделать кружками с Brush.Style:=bsClear или полупрозрачными, что симпатишнее и с номерами, то наложение узлов
будет заметно. Связи тоже не линиями, а с толщинкой, с фактуркой - тогда (см. г. С.Перовский) и зрительное наложение узлов на связи (без квазиполя :) будет заметно.
Это уже "свистульки с колокольчиками"...
Может лучше над моделью изначально подумать, чем потом, давать пользователю лишнюю нагрузку по восприятию и исправлению недостатков недодуманной модели? Для десятка узлов подвигать мышкой - может и сойдёт, а для двух сотен (или тысячи... да ещё и на нескольких экранах)?
Так вот иногда паутинки приходили в равновесие в сложенном пополам ( не точно) виде.
Это как???!!! :о)
Расправлять нужно было ручками. (Там еще мышкой можно было таскать).
"Вот-вот-вот!..."(с)МЖ
Потенциал Морзе есть, Ван-дер-Ваальс или 1/х^4-1х^2.
Вы тему прочитали? Мы ж вроде бы договорились, что это выражение - для суммарной силы. А вы её всегда сможете найти? А если состав сил и условия "дальнодействия" (как функция от количества дуг через промежуточные узлы) между двумя узлами, будет меняться?