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

Отрисовать выход из лабиринта - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ калькулятор с++ Обыкновенные дроби в двух формах: http://www.cyberforum.ru/cpp-beginners/thread769189.html
помогите написать калькулятор с ++ Обыкновенные дроби в двух формах: - числитель/ знаменатель; - целая часть числитель/знаменатель. он должен уметь делать Сложение, вычитание, умножение, деление, возведение в целую степень, сокращение дроби, обмен местами
C++ Вычислить значение выражения . Число ввести с клавиатуры Вычислить значение выражения (9+(9+...+(9+9^(1/2))...)^(1/(m-1)))^(1/m) . Число ввести с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread769159.html
Перегрузка присваивания для стека C++
Пытаюсь написать перегрузку присваивания для стека. Как видно из кода ниже, я сначала с помошью конструктора копирования создаю временный стек, идентичный исходному, затем возвращаю его. Вроде как всё остальное, в том числе конструктор копирования, написано правильно.В процессе работы программы делаю вот так: s2 = s1, где s2 - пустой, а s1 - непустой, после этой операции s2 так и остаётся пустым....
Написать программу на языке Си в которой C++
1. Описать логическую функцию, которая возвращает значение true, если между буквами ‘a’ и ‘z’ нет иных символов, кроме строчных латинских букв, и значение false иначе. помогите пожалуйста, на экзамен надо:)
C++ Игра "Жизнь" и торообразный массив http://www.cyberforum.ru/cpp-beginners/thread769119.html
Подскажите, как можно реализовать торообразный (круговой) массив для игры "Жизнь". есть только примитивный алгоритм, без учета перехода границ: проверка клетки: if(universe) count++; if(universe) count++; if(universe) count++; ifuniverse) count++; if(universe) count++;
C++ Программа запрашивает список чисел у пользователя... Программа запрашивает список чисел у пользователя. Если пользователь вводит некорректное значение - программа спрашивает завершить ввод или исправить ошибку и продолжить. Если пользователь выбирает завершить ввод, программа выводит на экран все простые числа из списка введенных чисел. Нужна помощь в написании.. подробнее

Показать сообщение отдельно
Vonder
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 9
22.01.2013, 22:18     Отрисовать выход из лабиринта
Доброго времени суток, дорогие форумчане!
Очень нужна ваша помощь с лабиринтом
Помогите пожалуйста прикрутить волновой алгоритм, как ни борюсь нормально не выходит.
Ссылки на сам алгоритм
http://algolist.manual.ru/maths/grap...tpath/wave.php
http://algolist.manual.ru/games/wavealg.php

Ссылка на картинки-тесты
http://yadi.sk/d/vutQBOal22UhK

На картинке изображены две точки : красная и зеленая, нужно найти кратчайший путь и отрисовать его.
Очень нужна ваша помощь. Как найти точки на картинке разобрался. А с поиском пути не очень.
Очень буду благодарен, если и некоторые комментарии будут.
Заранее спасибо!


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "stdafx.h"
#include "ololo.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
bool findRedPoint( Mat &inputImage, Point &outputPoint ) {
    if( inputImage.channels() != 3 ) { // If imgae is not an RGB
        return false;
    }
    else{
        bool flag = false;
        Point solPoint; 
        vector<Mat> planes;
        split(inputImage, planes);
        Mat ImgGray;//серое
        cvtColor(inputImage, ImgGray, CV_RGB2GRAY);
        Mat ImgBin;
        threshold(ImgGray, ImgBin, 200, 255,  CV_THRESH_BINARY);
        for(int i=0; i<inputImage.rows; i++){
            for(int j=0; j<inputImage.cols; j++){
                if(planes[1].at<uchar>(i,j) != ImgBin.at<uchar>(i,j)){
                    solPoint.x = i;
                    solPoint.y = j;
                    flag = true;
                }
            }
        }
        return(flag);
    }
} 
 
bool findGreenPoint( Mat &inputImage, Point &outputPoint ) {
    if( inputImage.channels() != 3 ) { // If imgae is not an RGB
        return false;
    }
    else{
        bool flag = false;
        Point solPoint; 
        vector<Mat> planes;
        split(inputImage, planes);
        Mat ImgGray;//серое
        cvtColor(inputImage, ImgGray, CV_RGB2GRAY);
        Mat ImgBin;
        threshold(ImgGray, ImgBin, 200, 255,  CV_THRESH_BINARY);
        for(int i=0; i<inputImage.rows; i++){
            for(int j=0; j<inputImage.cols; j++){
                if(planes[2].at<uchar>(i,j) != ImgBin.at<uchar>(i,j)){
                    solPoint.x = i;
                    solPoint.y = j;
                    flag = true;
                }
            }
        }
        return(flag);
    }
}
 
bool findRoute( Mat &image, Point &entryPoint, Point &exitPoint ) {
    // ToDo: find and draw a route between entry and exit points 
    // or return FALSE if it's impossible;
    return(true);
}
 
int main( int argc, char *argv[] ) {
    /*if( argc != 2 ) {
        cerr << "Wrong parameters" << endl;
        return -1;
    }*/
    char name[255] = "image.png";
    Mat image = imread( name/*argv[ 1 ]*/, -1 );
    if( !image.data ) {
        cerr << "Can't load " << name/*argv[ 1 ]*/ << " image file" << endl;
        system("pause");
        return -1;
    }
    namedWindow("Source Image", CV_WINDOW_FREERATIO);
    imshow ("Source Image", image);
    Point entryPoint, exitPoint;
    bool x = findRedPoint(image, entryPoint);
    if( findGreenPoint( image, entryPoint ) && ( findRedPoint( image, exitPoint ) ) ) {
        if( findRoute( image, entryPoint, exitPoint ) ) {
            imshow( "Route", image );
            waitKey();
        } else {
            cout << "Can't find a route" << endl;
        }
    } else {
        cout << "Can't find entry or exit point" << endl;
    }
    waitKey();
    return 0;
}
Добавлено через 1 час 37 минут
http://yadi.sk/d/INF5jJjm22hmO
извините, это правильная ссылка на картинки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru