Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация! 
:(
    Опции темы
Zorak
Дата 19.5.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Всем привет!. Вот написал программу, которая рисует кривые безье и конформную сетку в замкнутой области, но ето не важно) smile  проблема втом, что когда сильно вигинаеш прямые, то программа виснет. Мне кажется ето изза цикла, который все обсчитывает, начинается он на строке 1298, а заканчивается на 1442 строке. Можно ли както оптимизировать етот код ?), ибо капец просто. 
Помогите пжлста. Спасибо заранее!!!  smile  smile 

З.Ы. Программу виложил в архиве.
З.Ы.Ы. там написано оч много нужного и ненужного кода, но там всё правильно и всё надо))) поетому просьба ничего не добавлять и ничего не удалять, просто оптимизировать)


Это сообщение отредактировал(а) Zorak - 19.5.2009, 15:42

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  ______kruv11.rar 260,52 Kb


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Bitter
Дата 19.5.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: нет
Всего: 27



у мя ничё не виснет

Добавлено через 1 минуту и 22 секунды
только "Не правильно" постоянно выскакивает и вырубается. Убрал Halt, виснуть не начало

Добавлено через 7 минут и 34 секунды
а, понял. Хоть бы написал, что нужно построить сетку эту...
А вообще человечество придумало коментарии и структуризацию программного кода. И переменные можно называть более чем одной буквой.

Ну ладно, если по делу, то я заметил простой установкой брэкпоинта, что переменная eps при большом выгибании отрицательная, а условие выхода из цикла Abs(t0-t)>eps, то есть бесконечный цикл

Добавлено через 13 минут и 9 секунд
извиняюсь, с Eps это произошол глюк во время отладки
PM MAIL ICQ Skype   Вверх
Bitter
Дата 19.5.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: нет
Всего: 27



Вот что получилось, принудительно остановив расчеты.
Вывод: не верная формула для расчета кривых, что приводит к бесконечному циклу

Присоединённый файл ( Кол-во скачиваний: 24 )
Присоединённый файл  __________.JPG 55,49 Kb
PM MAIL ICQ Skype   Вверх
Bitter
Дата 19.5.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: нет
Всего: 27



Вот только в твоем коде разобраться сложно, так что...
Насколько я понял, для рисования кривой ты пользуешься какой-то виндовской функцией. Если рисовать кривые вручную, то по полученным точкам можно легко построить сетку интерполируя её линии от кривой к кривой. Я так и делал, когда рисовал сетку безье.
В ручную рисовать безье можно так:
1. Кривая из базовых 4х точек, 1я - начало кривой, 4я - конец. 2я и 3я вспомогательные точки равномерно расперделенные между 1й и 4й. Выглядит так: о------о------о------о
2. Тогда промежуточные точки вычисляются по формуле: 
    P(t)   = R0+(R1-R0)*t
    R0(t) = Q0+(Q1-Q0)*t
    R1(t) = Q1+(Q2-Q1)*t
    Q0(t) = P0+(P1-P0)*t
    Q1(t) = P1+(P2-P1)*t
    Q2(t) = P2+(P3-P2)*t

3. Р0, Р1, Р2, Р3 - координаты базовых четырех точек. t изменяется от 0 до 1. Чем мельче шаг, тем точнее кривая

Ну вот, в кратце так

PM MAIL ICQ Skype   Вверх
Zorak
Дата 19.5.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Цитата(Bitter @ 19.5.2009,  15:48)
Добавлено @ 15:56
а, понял. Хоть бы написал, что нужно построить сетку эту...
И переменные можно называть более чем одной буквой.

Виржался, спс)))))).. а вообще извеняюсь) Недописал...

Добавлено через 4 минуты и 11 секунд
Блин.. понял)Спасибо...  попробую твой вариант Bitter, с результатом отпишусь завтра ближе к обеду)) smile 


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Zorak
Дата 19.5.2009, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Bitterя расписал твою формулу и у меня получилось точно такое, какое я использую в программе. =) возьми подставь всё свое и роспиши и посмотри чтополучится и сверь с моей программой (описание функций xt1 - xt4, yt1 - yt4).. =)тоесть если твои формули правильные, то мои тоже правильные, просто у меня они уже расписаны и записаны  в одной строке)...
З.Ы. если не хочеш сидеть и думать то я в принципе могу написать то что я подставлял, нотам много и не оч хоч убивать 10 мин на набор)))... Жду ответа...


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Bitter
Дата 19.5.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: нет
Всего: 27



Разбираться долго, так что могу просто выслать тебе пример, который я делал с такой же сеткой. Только это скорее всего в четверг
PM MAIL ICQ Skype   Вверх
Zorak
Дата 19.5.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Цитата(Bitter @ 19.5.2009,  17:56)
Разбираться долго, так что могу просто выслать тебе пример, который я делал с такой же сеткой. Только это скорее всего в четверг

Ок) буду ждать, завтра я виложу то что яросписал), загляни посмотриш)


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Bitter
Дата 19.5.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: нет
Всего: 27



смогу посмотреть начиная с четверга (поездка)
PM MAIL ICQ Skype   Вверх
Bitter
Дата 22.5.2009, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: нет
Всего: 27



 smile 
user posted image

Размеры сетки задаются в коде

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Grid.rar 170,84 Kb
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.