Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Из точки А в точку В - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread941716.html
Помогите проверить и сделать надо 1) Базовый класс Строка Описать базовый класс СТРОКА. Обязательные члены класса: * указатель на char - хранит адрес динамически выделенной памяти для...
C++ Введенное число делить на второе введенное число пока первое число не станет равным нулю Введенное число делить на второе введенное число пока первое число не станет равным int number=0; int secondNum=0; int res=0; void main(){ cin>>number; http://www.cyberforum.ru/cpp-beginners/thread941649.html
Библиотеки для загрузки 3d моделей C++
собственно есть ли у кого парсеры для загрузки разных 3d форматов ?
C++ Настройка SDL в Visual Studio 2012
Здравствуйте. Настраиваю SDL по данному видео: https://www.youtube.com/watch?v=mdQHYxe6zJo Подключил папки bin и include, скопировал файл SDL.dll в папку system и сделал еще кое-какие несложные...
C++ Вычисление MD5 суммы папки http://www.cyberforum.ru/cpp-beginners/thread941614.html
Здравствуйте! Каким самым простым образом можно вычислить MD5 хеш папки?
C++ Visual Studio Express Установил Visual Studio Exppress, т.к. она бесплатная, но не пойму, как теперь создать консольное приложение. В меню создания проекта такого пункта нет подробнее

Показать сообщение отдельно
NativeLand
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 46

Из точки А в точку В - C++

22.08.2013, 12:52. Просмотров 523. Ответов 12
Метки (Все метки)

Добрый день. Взялся за .. как мне показалось вначале .. легкую задачу и что-то засел над ней второй день... Код все больше и больше усложняю, но пока он криво работает...
Мб кто-то подскажет более-менее простой алгоритм ее решения?

Задача: дана матрица двумерная с значениями {0;1}. С помощью "1" изображена некая замкнутая кривая. Даются координаты точек А(START) и В(FINISH) на данной кривой. Необходимо по часовой стрелки из А в В перейти по всем точкам фигуры.

Мое решение было с такой идеей:
1. В зависимости какая из точек "выше" - соответственно от точки А и В перекодировать на .. скажем "1" на "2" до конца строк матрицы с точками А и В(или от начала строки до точки А и В при условии что точка В "выше" точки А).
2. Далее с верхней точки опускаться в нижнюю таким способом: а) начиная с верхней строки беру под ячейками с "2" три нижних ячейки и смотрю на наличие "1" .. если есть, изменяю на "2"; б) опускаюсь на эту же строку .. и проходя по всей строке ищу "2". Если есть "2", тогда все соседние к ней "1" изменяю на "2".
3. Повторяю процедуру "2" для новой строки до тех пор, пока не пройдусь от строки с А к строке с В.

Работает криво, т.к. ниже "нижней точки" не опускается. Т.е. если точка А и В в находятся в расстоянии нескольких пикселей на одной стороне кругоподобного чего-то - все работает нормально, а вот если по разные стороны (как показано на рисунке) - тогда не работает...
0
Миниатюры
Из точки А в точку В  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru