Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
0xDC
Зарегистрирован: 16.10.2011 Сообщения: 3
|
Добавлено: Вс Окт 16, 2011 00:50 Заголовок сообщения: Фракталы |
|
|
Доброго времени суток. Сейчас разбираюсь с фракталами. а именно построение фрактала Коха. Сам отрезок просто в виде линии Коха-сделал, но нужно сделать в виде снежинки. Проблема в том. что алгоритм реализован при помощи метода системы счисления по основанию 4. Он использует улгы. При построении в ввиде треугольника, получается, что-то непонятное. Вот код:
uses CRT, Graph;
const
p = 4;
var
gd, gm: Integer;
i, j: Integer;
x, y, l: Real;
a: Real;
n, m, k: Integer;
begin
gd := Detect;
InitGraph(gd, gm, 'c:\bp\bgi');
x := 0;
y := 400;
l := 640/(exp(p*ln(3)));
MoveTo(Round(x), Round(y));
for i:=0 to Round(exp(p*ln(4)))-1 do
begin
a := 0;
n := i;
k := 0;
repeat
m := n mod 4;
n := n div 4;
case m of
0: a := a + 0; //По идее при создании снежинки
1: a := a - pi/3;//углы надо поменять на 0:60;
2: a := a + pi/3;// 1:2pi/3 (вобщем увеличить в 2
3: a := a + 0; // раза или я не прав?
end;
inc(k);
until k >= p;
x := x + l*cos(a);
y := y + l*sin(a);
LineTo(Round(x), Round(y));
end;
ReadKey;
CloseGraph;
end.
Подскажите как сделать тем же методом(он понятен и прост) только для треугольника, чтобы получить снежинку?
Пробовал также строить по точкам( т.е находить середину, строить равносторонний треугольник на этом основании и т.д) но там слишком много считать+если пытаться построить обратную снежинку, то придется все переделывать, по сис. счисления все просто.
Вобщем начинающий демомэйкер ждет помощи) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Окт 16, 2011 02:16 Заголовок сообщения: |
|
|
извините за оффтоп:
а что, в Таганрогском институте до сих пор на Турбопаскале учат программировать?
ЗЫ: использование библиотеки Graph отдельная жесть канеш )) |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вс Окт 16, 2011 14:39 Заголовок сообщения: |
|
|
"фрактала Коха" напомнил мне палочку Коха.
И ещё вот это:
 |
|
Вернуться к началу |
|
 |
SCRIMERS

Зарегистрирован: 21.03.2008 Сообщения: 270 Откуда: Sevastopol
|
Добавлено: Вс Окт 16, 2011 15:08 Заголовок сообщения: Re: Фракталы |
|
|
[quote="0xDC"] но там слишком много считать/quote]
Ну извини.
Считать там немного.
Ты можешь пойти двумя путями, строить снежинку (или любой другой объект) в начале или конце отрезка (линии). Либо взять середину линии и построить там фигуру. Используй формулы вписанного (описанного) круга и треуглоьника, например. На бумажке расчитаешь, а потом закодишь по готовым формулам. _________________ на русской Сцене мы удивляем друг друга тем, что вообще что-то делаем (с) manwe |
|
Вернуться к началу |
|
 |
0xDC
Зарегистрирован: 16.10.2011 Сообщения: 3
|
Добавлено: Пн Окт 17, 2011 17:42 Заголовок сообщения: |
|
|
А чем Паскаль и Graph плохи? алгоритм построения фрактала, хоть на паскале хоть на плюсах, одинкаов-вопрос в реализации.А те кто используют готовые процедуры на всяких там Шарпах и прочих удобных системках, чаще всего бывает не знают элементарных вещей. Напишу на паскале, прикручу к Делфи-делов-то. Лучше по делу подскажите, чем устраивать холивары на тему что лучше.
ЗЫ. Открою маленький секрет, на ТУРБОПАСКАЛЕ учат везде. |
|
Вернуться к началу |
|
 |
0xDC
Зарегистрирован: 16.10.2011 Сообщения: 3
|
Добавлено: Пн Окт 17, 2011 17:55 Заголовок сообщения: Re: Фракталы |
|
|
SCRIMERS писал(а): |
Считать там немного.
Используй формулы вписанного (описанного) круга и треуглоьника, например. На бумажке расчитаешь, а потом закодишь по готовым формулам. | Для оьратной снежинки придется пересчитывать, а для углов-поменять направление. Так вот, именно методом системы счисления по 4. есть мысли как сделать?. Увеличивал угол, так как если строить из треугольника, то 60+60, первый отрезок должен быть под 120, а остальные на 60 больше, но как то коряво выходит. |
|
Вернуться к началу |
|
 |
SCRIMERS

Зарегистрирован: 21.03.2008 Сообщения: 270 Откуда: Sevastopol
|
Добавлено: Вт Окт 18, 2011 20:47 Заголовок сообщения: Re: Фракталы |
|
|
0xDC писал(а): | Для оьратной снежинки придется пересчитывать, а для углов-поменять направление. Так вот, именно методом системы счисления по 4. есть мысли как сделать?. Увеличивал угол, так как если строить из треугольника, то 60+60, первый отрезок должен быть под 120, а остальные на 60 больше, но как то коряво выходит. |
Прости, я тебя кажется не правильно понял.
Вот это может поможет http://ru.wikipedia.org/wiki/Кривая_Коха . Там ещё ссылка внизу есть - может алгоритм придумаешь. С сорцами - только искать.
Дальше читать, если вдруг понадобится поменять примитив отрисовки.
Я представляю себе задачу так (т.е. то как ты хочешь переделать рисование).
Есть алгоритм, который рисует фрактал линиями. Тебе надо вместо линий рисовать, например, квадрат. Значит ты можешь рисовать либо в точках соединения линий, либо в середине линий.
Анализируем код:
Код: |
x := 0;
y := 400;
MoveTo(Round(x), Round(y));
for i:=0 to Round(exp(p*ln(4)))-1 do
begin
a := 0;
n := i;
k := 0;
repeat
m := n mod 4;
n := n div 4;
case m of
0: a := a + 0; //По идее при создании снежинки
1: a := a - pi/3;//углы надо поменять на 0:60;
2: a := a + pi/3;// 1:2pi/3 (вобщем увеличить в 2
3: a := a + 0; // раза или я не прав?
end;
inc(k);
until k >= p;
x := x + l*cos(a);
y := y + l*sin(a);
LineTo(Round(x), Round(y));
end; |
Алгоритм получится такой:
задание начальных значений и положения;
Код: | [b]ЦИКЛ[/b]
формирование след. координаты для отрисовки;
[i]отрисовка;[/i]
[b]Конец Цикла[/b] |
В отрисовку можно что-угодно запихать и отрисовать в данных координатах. _________________ на русской Сцене мы удивляем друг друга тем, что вообще что-то делаем (с) manwe |
|
Вернуться к началу |
|
 |
sanbase
Зарегистрирован: 16.03.2012 Сообщения: 47
|
Добавлено: Вт Апр 10, 2012 21:28 Заголовок сообщения: |
|
|
0xDC писал(а): | ЗЫ. Открою маленький секрет, на ТУРБОПАСКАЛЕ учат везде. |
Открою маленькой секрет, на паскале равно как и на делфи учат (и работают) только в России. Почему то ни этот язык, ни этот продукт на западе распостранения не имеют. Программированию учат на C++. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Апр 10, 2012 22:15 Заголовок сообщения: |
|
|
Я, конечно, могу что-то путать, но программированию учат на том языке, на котором, собственно, надо решать ту или иную конкретную задачу. А вот ПРОЕКТИРОВАНИЮ учат не на "языке" вообще. Собственно, на чём потом закодить - не столь важно. Вчера надо было программировать на C++ а сегодня ту же задачу надо решать уже на C# например. А завтра ещё на чём-нибудь. Языки - дело наживное. |
|
Вернуться к началу |
|
 |
sanbase
Зарегистрирован: 16.03.2012 Сообщения: 47
|
Добавлено: Вт Апр 10, 2012 23:36 Заголовок сообщения: |
|
|
Manwe писал(а): | Я, конечно, могу что-то путать, но программированию учат на том языке, на котором, собственно, надо решать ту или иную конкретную задачу. А вот ПРОЕКТИРОВАНИЮ учат не на "языке" вообще. Собственно, на чём потом закодить - не столь важно. Вчера надо было программировать на C++ а сегодня ту же задачу надо решать уже на C# например. А завтра ещё на чём-нибудь. Языки - дело наживное. |
Ну не совсем так. Навыкам ПРОГРАММИРОВАНИЯ учат все же на языке программирования, иначе это невозможно. На западе таким языком (на котором учат писать программы) сейчас является C++. Практически все современные языки (Java, PHP, C#, GLSL) имеют С-образный синтаксис.
Собственно моя реплика была о том, что далеко не "везде" учат на турбопаскале. Меня (в свое время) вообще учили программированию на FORTRAN'е. Cи а потом C++ я осваивал самостоятельно. Что вообще-то было минусом, поскольку приходилось часто "изобретать велосипед", но я мог осваивать язык в процессе работы. А теперь мне весьма грустно видеть, когда из России приезжают программисты знающие только Delphi, которое тут нафиг никому не нужно. А синтаксис Паскаля довольно ублюдочный (IMHO) и переучиваться на C++ весьма болезненно. И времени на переучивания у них нет. Народ элементарно не может найти работу.
Последний раз редактировалось: sanbase (Вт Апр 10, 2012 23:41), всего редактировалось 2 раз(а) |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вт Апр 10, 2012 23:38 Заголовок сообщения: |
|
|
sanbase писал(а): | А теперь мне весьма грустно видеть, когда из России приезжают программисты знающие только Delphi,которое тут нафиг никому не нужо. А синтаксис Паскаля довольно ублюдочный (IMHO) и переучиваться на C++ весьма болезненно. И времени на переучивания у них нет. Народ элементарно не может найти работу. |
Мышконакидатели-дельфисты и тут нафиг никому ненужны
А нормальным программерам всё-равно на чём писать. Perl, Python, php, Java, C++, Active Script, Ruby. Всё это востребованно, и судя по тому, что Borland ещё не отказался от разработки Delphi - на нём не только в Рашке делают программы. Да и база (исходники, библиотеки, компоненты, документация) под Делфи очень обширная, глупо отказываться. Помоему современный компилятор Borland'a умеет и под МакОС компилировать проекты.
ЗЫ: Сам писал на Делфях в 95-98 годах. Начинал ещё с Dellphi 1.0 под Win 3.1 |
|
Вернуться к началу |
|
 |
sanbase
Зарегистрирован: 16.03.2012 Сообщения: 47
|
Добавлено: Ср Апр 11, 2012 01:01 Заголовок сообщения: |
|
|
BiTL писал(а): | А нормальным программерам всё-равно на чём писать. Perl, Python, php, Java, C++, Active Script, Ruby. |
Да не совсем. При поступлении на работу, тебе дают тесты на том языке, который нужен работодателю. И разговоры, мол "да я выучу когда надо будет" не катят. Тесты серьезные, на ГЛУБОКОЕ знание языка. Так что тут "общий подход" не проходит. Основных языков (наиболее востребованных) сейчас два - C++ и Java. И если ты сдаешь тест на Java, то Java Biulder (где все классы и методы открываются мышкой) тебе не дают. Дают листок бумаги и карандаш. А далее вот тебе список вопросов на трех листах, час времени - вперед и с песней  |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Ср Апр 11, 2012 02:36 Заголовок сообщения: |
|
|
sanbase писал(а): | BiTL писал(а): | А нормальным программерам всё-равно на чём писать. Perl, Python, php, Java, C++, Active Script, Ruby. |
Да не совсем. При поступлении на работу, тебе дают тесты на том языке, который нужен работодателю. И разговоры, мол "да я выучу когда надо будет" не катят. Тесты серьезные, на ГЛУБОКОЕ знание языка. Так что тут "общий подход" не проходит. Основных языков (наиболее востребованных) сейчас два - C++ и Java. И если ты сдаешь тест на Java, то Java Biulder (где все классы и методы открываются мышкой) тебе не дают. Дают листок бумаги и карандаш. А далее вот тебе список вопросов на трех листах, час времени - вперед и с песней  |
Если я решу искать работу связанную с конкретным языком, то я заранее покурю маны и попишу что-нибудь на нём.
Читал как-то статью Криса Касперского (не путать с дядей Женей), где он описывал своё устройство на работу в США: http://samag.ru/archive/article/1670 (к сожалению в статье нет той истории, про тестовое задание, незнаю где найти, но она была смешная) Крис в теме Не так всё страшно, и в России полно толковых людей, которые бы с лёгкостью получили работу программера в любой стране. А что там в Канаде за наплыв "дельфистов", это я хз ) В Канаду много кто едет. |
|
Вернуться к началу |
|
 |
numerouno
Зарегистрирован: 04.09.2011 Сообщения: 390
|
Добавлено: Ср Апр 11, 2012 06:10 Заголовок сообщения: |
|
|
откуда мода Ruby? поветрие с Канады и Пендостана? знакомый плюется от него и нервно матерится.. я тоже бы иногда ругнулся  _________________ вначале было крактро, а потом такое началось,когда праникся дэмоспиритом апасля вайнспирита!1
Аднажды на ДемосценеРупоявился невежа. его с позором прогнали. Так появились тролли.
миниатюры 256bytes.net в одном флаконе
Я программист, Зип Файл! |
|
Вернуться к началу |
|
 |
numerouno
Зарегистрирован: 04.09.2011 Сообщения: 390
|
Добавлено: Ср Апр 11, 2012 06:15 Заголовок сообщения: |
|
|
BiTL писал(а): |
Читал как-то статью Криса Касперского (не путать с дядей Женей), где он описывал своё устройство на работу в США: http://samag.ru/archive/article/1670 (к сожалению в статье нет той истории, про тестовое задание, незнаю где найти, но она была смешная) Крис в теме Не так всё страшно, и в России полно толковых людей, которые бы с лёгкостью получили работу программера в любой стране. А что там в Канаде за наплыв "дельфистов", это я хз ) В Канаду много кто едет. |
ерунда у Криса написано, про H1B абстоятельства изменились, да и с работой тоже. вот, што на крэглисте есть - программер на Паскале, реверсер ActiveX в вирусном ПО, Джава и прочее. _________________ вначале было крактро, а потом такое началось,когда праникся дэмоспиритом апасля вайнспирита!1
Аднажды на ДемосценеРупоявился невежа. его с позором прогнали. Так появились тролли.
миниатюры 256bytes.net в одном флаконе
Я программист, Зип Файл! |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|