![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 127
|
![]()
Всем привет!
Я уже довольно давно собираю данные о своем роде, делаю генеалогическое древо. Количество персонажей в нем у меня ушло за несколько сотен человек. Поэтому я решил хранить данные на компе. Попробовав несколько программ, я не получил хорошего результата. Так как в тех программах нужно просто рисовать древо, а мне это не подходит. Я бы хотел хранить это древо в какой-нибудь базе данных, а когда нужно, прога сама рисовала оптимальный вариант древа. Создать базу достаточно просто. Но тут стал вопрос, как будут связаны между собой люди в этой базе. Я подумал и пришел к выводу, что нужно создать 3 свойства: "родители", "супруги" и "дети". Это я наглядно показал на рисунке 1. Рисунок 2 - это то, как примерно должны расположиться номера людей в древе. Но как перейти от базы, что на Рис.1 к древу, что на Рис.2??? Это главный вопрос. Первым шагом по пути к его решению, на мой взгляд, должно стать расформирование базы на поколения. Например, вот так: 1) 14 2) 9, 11, 13, 5 3) 3, 6, 2, 10, 7, 4 4) 12, 8, 15, 1 Это вроде получается. ![]() А вот что мне делать дальше, я не знаю. ![]() Если у кого-нибудь есть что-то полезное (ссылки, идеи и т.д.), то заранее огромное спасибо! P.S. С праздником!!! ![]() |
![]() |
![]() |
![]() |
#2 |
Otsukitakitte
Форумчанин
Регистрация: 01.10.2009
Сообщений: 126
|
![]()
И Вас с праздником!
Как такового решения я не имею, но если есть проблема в рисовании, то используйте стандартный метод рисования в Delphi - поищите в гугле.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); }); |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 127
|
![]()
Спасибо
![]() С рисованием проблем как раз нет. Это даже рисовать не обязательно. Это можно и html-страничкой сделать и т.д. Нужен способ, чтобы как-то их лучшим образом распределить. |
![]() |
![]() |
![]() |
#4 | |||
Otsukitakitte
Форумчанин
Регистрация: 01.10.2009
Сообщений: 126
|
![]()
Ну попробуй через INI или XML.
Отлично хранят информацию. Пример INI: Цитата:
Цитата:
С XML не работал ниразу, но структура наверное будет лучше: Цитата:
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); }); |
|||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 127
|
![]()
Спасибо большое за помощь, но это к сожалению не то, что нужно. Вы пишете как создать базу данных. Всё это у меня уже есть. Я остановился на INI. Сделал прогу по работе с этой базой. Возможно, что что-то будет лучше, чем INI, но это совсем не важно.
Я специально не останавливался на этих подробностях и сделал на Рис.1 только четыре самых важных столбца (на мой взгляд). Мне просто нужен алгоритм расположения всех этих кружочков и стрелочек. Хотя бы просто русскими словами. Мне нужно то, как должна "мыслить" программа, чтобы их расположить. А лучше, нужен оптимальный вариант расположения. На мой взгляд, оптимальный вариант - это когда стрелки должны быть как можно короче. А где их расположить? Да хоть на простой канве. Это уже подробности языка и желания. Я думаю, что всё это не сложно переделать под что-то другое. Нужен просто метод расположения. Я написал эту тему в данный раздел потому что работаю с Delphi. Может её лучше нужно было написать в "Свободное общение"? P.S. Можно писать хоть так: "Родителей первого поместить туда-то (можно X,Y), детей, если они есть в другое место и т.п.". Мне нужна только идея. Я её к горькому сожалению не вижу. ![]() |
![]() |
![]() |
![]() |
#6 | |
Otsukitakitte
Форумчанин
Регистрация: 01.10.2009
Сообщений: 126
|
![]()
ага, понял) у Вас проблема в расположении считаных строк.
Ну, попробуем... Ну родители в самом верху.. потом дети.. потом их дети и тд и тп. Ну расположение, насколько знаю, регулирует свойство Left, Top. К примеру, делаем преимущетсво в родительской строке: Цитата:
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); }); |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 127
|
![]()
Спасибо. Конечно же, смысл понятен.
![]() Видимо, тут нужно учитывать большое количество факторов. Можно даже позволить пользователю какими-то факторами управлять. К примеру: расстояние между поколениями; минимальное расстояние между персонами; мужчина слева, а женщина справа (или наоборот) и т.д. Всё видимо не так просто, как кажется на первый взгляд. По крайней мере для меня ![]() |
![]() |
![]() |
![]() |
#8 |
Otsukitakitte
Форумчанин
Регистрация: 01.10.2009
Сообщений: 126
|
![]()
Я сдаюсь... З Різдвом! =) Помогут Вам программеры заядлые
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); }); |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 127
|
![]()
Буду надеяться
![]() |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 127
|
![]()
Товарищи!
![]() Спасибо! P.S. погуглил-погуглил, а ничего особенно подходящего не нашел. ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм создания дерева Delphi | VadEr | Помощь студентам | 5 | 03.11.2009 08:45 |
Создания интерфейса...си | dampirik | Помощь студентам | 1 | 06.07.2009 14:40 |
C# Создания ярлыка | MAcK | Общие вопросы .NET | 6 | 16.08.2008 12:22 |
создания бота | kobras | Работа с сетью в Delphi | 1 | 01.12.2007 14:41 |
Создания Класса | Mickle | Общие вопросы Delphi | 1 | 30.04.2007 00:44 |