Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2011, 15:18   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию кусочно-линейная аппроксимация

не знаю может в другой раздел писать надо было, пишу на с++, по этому написал сюда.
но ближе к делу. Дано:
массив координат кривой на плоскости
Код:
float x[10000], y[10000];
эту кривую я потом буду воспроизводить на мониторе.
как видим кривая у нас, представлена в виде точек. надо их преобразовать (аппроксимировать) в отрезки.
если-бы длинна отрезков была одинаковой... но их длинна должна быть различна, в зависимости от характера кривой. например на прямолинейном участке отрезки будут длиннее.
второй день голову ломаю над алгоритмом.
SAMOUCHKA вне форума Ответить с цитированием
Старый 31.10.2011, 15:23   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Вроде бы любой графический интерфейс работы с монитором позволяет нарисовать линию из точки A в точку B.
Или речь о том, что в массивах могут быть точки примерно на одной прямой?
Как вариант, пока точки не кончатся, взять следующую точку в качестве начала отрезка, затем пока прибавление очередной точки к отрезку возможно, прибавлять очередную точку. Прибавление точки к отрезку возможно, если при подстановке промежуточных точек в (нормированное!) уравнение отрезка от первой точки до кандидата получаются значения меньше заданной погрешности e.
Abstraction вне форума Ответить с цитированием
Старый 31.10.2011, 15:38   #3
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Или речь о том, что в массивах могут быть точки примерно на одной прямой?
.
да об этом.
например часть окружности с большим радиусом, можно представить в виде более или менее длинных отрезков. в то-же время окружность с меньшим радиусом придется представить, в виде более коротких отрезков

Последний раз редактировалось SAMOUCHKA; 31.10.2011 в 15:42.
SAMOUCHKA вне форума Ответить с цитированием
Старый 31.10.2011, 16:31   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Ну... базовые очертания варианта приведены выше.
Abstraction вне форума Ответить с цитированием
Старый 01.11.2011, 09:05   #5
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Или речь о том, что в массивах могут быть точки примерно на одной прямой?
ну и пусть они есть.
грубо говоря moveto(x1,y1), lineto(x2,y2)
предварительно можно даже не сортировать массив x-ов.
Kukurudza вне форума Ответить с цитированием
Старый 01.11.2011, 09:36   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Kukurudza, я так понимаю, имеется в виду, что 9999 отрезков - это много, надо меньше.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аппроксимация методом наименьших квадратов kamil83 Помощь студентам 0 22.02.2011 17:33
Си/Си++ Поиск минимума кусочно-линейной функции Маришка_Курносова Помощь студентам 4 15.10.2010 20:39
Аппроксимация функциональных зависимостей CrankyZone Помощь студентам 4 24.05.2009 22:25
аппроксимация функций natasha Общие вопросы Delphi 6 26.08.2008 19:07